使用VBA提示用户选择单元格(可能在不同的工作表上)
我正在Excel中处理一个VBA项目,希望宏的一部分能够提示用户选择一个单元格范围*,宏稍后可以使用该单元格进行处理 *创建图表或使用GUI插入函数时得到的提示类型 e、 g.此处: 在这里: 因此,我在寻找类似于使用VBA提示用户选择单元格(可能在不同的工作表上),vba,excel,excel-2010,Vba,Excel,Excel 2010,我正在Excel中处理一个VBA项目,希望宏的一部分能够提示用户选择一个单元格范围*,宏稍后可以使用该单元格进行处理 *创建图表或使用GUI插入函数时得到的提示类型 e、 g.此处: 在这里: 因此,我在寻找类似于 Sub MyMacro() MsgBox "Please select data range" ' allow user to select range (as images above) CreateFunctionArgumentsPrompt()
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
是否可以访问内置的Excel功能来执行我所说的:CreateFunctionArgumentsPrompt()
注:这与SO问题类似,但不同之处在于
这不是使用上面显示的内置单元格,而是允许您在收入提示后选择一系列单元格:
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
这是基于中给出的答案
以下是它在使用中的外观:
您要查找的是一个对话框(也称为通用对话框)。不幸的是,您(至少不使用VBA) 如上所述,您可以使用InputBox和表单模拟此功能。也就是说,我见过基于Excel的专有程序,公司在其中添加了您描述的功能类型。但是,我相信您必须使用C++或更深层次的语言来创建能够完成这个的DLL。
对话框有一点值得注意:Excel有一个内置对话框,允许您使用现有的Windows API对话框创建常见的文件服务器对话框(如打开、保存和选择)。我找到了这个链接:这可能很有帮助此代码只有一个问题。如果所选内容来自不同的工作表或不同的工作簿,则返回的范围地址不是完全限定的。所以你也需要注意:)你可能想看看我在问题下面发布的链接……这太棒了!正是我想要的,谢谢@Siddharth Rout-我刚刚测试了这个解决方案,并且
rng.Worksheet.Name
和rng.Worksheet.Parent.Name
(用于检查工作簿)返回了工作表和工作簿名称,即使我在不同的工作表或工作簿上选择了一个范围。更容易阅读类型:=8