Using VBA to prompt user to select cells (possibly on different sheet) [duplicate]

喜你入骨 提交于 2019-11-27 11:58:48

问题


I'm working in Excel on a VBA project, and want part of my macro to prompt the user to select a range of cells*, which the macro can later do stuff with.

*The type of prompt you get when creating a chart, or using a GUI to insert a function

e.g. here:

and here:

I'm therefor looking for something along the lines of

Sub MyMacro()
    MsgBox "Please select data range"

    ' allow user to select range (as images above)
    CreateFunctionArgumentsPrompt()    

    'do stuff with user selected range of cells
    ...
End Sub

Is it possible to access built-in Excel functionality to perform what I refer to as: CreateFunctionArgumentsPrompt()

Note: this is similar to SO question excel vba get range of user selected range by mouse but differs in that

  1. I want to use the built in GUI functionality of Excel as displayed above
  2. I need to be able to select and refer to a range on a sheet other than the active worksheet

回答1:


This isn't using the built in that you showed above, but does allow you to select a range of cells following an income prompt:

Sub RangeSelectionPrompt()
    Dim rng As Range
    Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

    MsgBox "The cells selected were " & rng.Address
End Sub

This is based on the answer given in this MrExcel answer.

Here is how it looks in use:




回答2:


What you are looking for is a dialog box (also called a common dialog). Unfortunately you cannot add one to the existing built in objects (at least not using VBA).

As mentioned above you can mimic this functionality using InputBox and Forms. That said I have seen proprietary programs that are based on Excel where the company added the type of functionality you describe. However, I believe you have to use C++ or a deeper language to create DLLs that can accomplish this

One thing worth noting about dialogs: Excel has a built in Common File Dialog object library which allows you to create common file server dialog boxes (such as Open, Save & Select) using existing Windows API dialogs.



来源:https://stackoverflow.com/questions/22812235/using-vba-to-prompt-user-to-select-cells-possibly-on-different-sheet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!