捕获单元格范围从Excel VBA中的用户input
我收到来自不同客户的包含性别和出生date栏目的员工名单的Excel工作簿。 他们到达不同的格式。 我正在创build一个excel工作表,我将添加到每个这些工作簿,这将允许我将一系列公式应用于客户数据。 问题是我不知道出生date数据的位置。
我想要一个macros提示我select出生date值的范围,然后将该数据范围放到工作表上的一个单元格(F31)中,以便将其拉入我的其他公式中。
我在下面创build的代码工作,但它不会拉动工作表选项卡名称和范围。 我如何获得工作表名称以及单元格范围?
Sub ChooseDOBRange() Dim rng As Range Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8) rng.Copy Worksheets("COVER SHEET").Range("F31") = rng.Address End Sub
我如何获得工作表名称以及单元格范围?
你需要rng.Parent.Name
这是你正在尝试?
Sub ChooseDOBRange() Dim rng As Range On Error Resume Next '<~~ In case user presses Cancel Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8) On Error GoTo 0 If Not rng Is Nothing Then rng.Copy Worksheets("COVER SHEET").Range("F31").Value = _ rng.Parent.Name & " - " & rng.Address '<~~ Something like "Sheet2 - $C$6:$H$14" End If End Sub
有两种方法可以取决于您是否希望Workbook
名称也在公式中。 我正在testing这些在即时窗口中。
方法1使用.Address
与External
参数设置为True
?ActiveCell.Address(,,,True)
[第二册]工作表Sheet1!$ A $ 1
方法2使用.Address
以及Range.Parent.Name
中的表名称,其中Parent
指向Range
的Worksheet
?"'" & ActiveCell.Parent.Name & "'!" & ActiveCell.Address
'工作表Sheet1'!$ A $ 1