用户在excel电子表格中选择输入

时间:2014-08-28 13:30:43

标签: excel vba excel-vba user-controls

我试图找出VBA中是否有一个方法允许我打开一个填充的excel电子表格并允许用户选择包含他们想要在一系列文件中提取的数据的特定单元格然后将选定的单元格传递回程序,以便它可以遍历指定文件夹中的100个文件并提取所需的数据。

我不是想让别人为我编写代码(虽然示例很棒)我只是不确定如何手动选择数据并将其传回程序。我已经有了代码功能,可以通过100个文件顺序提取数据,并将其放在我需要的位置。我需要手动选择,因为每个文件夹(用户选择)中的文件中的数据位置可能会有很大差异。现在我必须明确地在数据的位置编程,但是我们有100个报告文件,每个报告文件具有不同的布局,因此在数据位置中手动编程是非常低效的。

想法?

2 个答案:

答案 0 :(得分:1)

您可以在UserForm上使用RefEdit控件。我认为RefEdit不是默认启用的控件,因此您可能需要右键单击工具箱并从"其他控件"启用它,一旦完成,您应该看到它工具箱:

enter image description here

如果您希望其他人使用此宏,您可能需要在其计算机上启用它或将宏作为XLAM加载项的一部分进行分发,否则它可能对它们不起作用。

enter image description here

RefEdit控件允许用户选择范围作为输入:

enter image description here

该控件的名称类似于RefEdit1(您可以在VBE的VB Properties窗格中更改为其他内容),并访问您所希望的传递值:

MsgBox UserForm2.RefEdit1.Value

现在你已经掌握了所选范围的.Address,你可以将它传递给其他程序/等。

答案 1 :(得分:1)

我会选择

Sub SelectRange()

    Dim selRng As Range
    Set selRng = Application.InputBox(Prompt:="Select Range", Title:="", Type:=8)

    MsgBox selRng.Address
End Sub