我收到来自不同客户的excel工作簿,其中包含有性别和出生日期列的员工列表。它们以不同的格式到达。我正在创建一个excel工作表,我将添加到每个工作簿中,这将允许我将一系列公式应用于客户数据。问题是我不提前知道出生日期数据的位置。
我想要一个宏来提示我选择出生日期值的范围,然后将该数据范围放入我工作表上的单元格(F31)中,以便我可以将其拉入其他公式。
我在下面创建的代码有效,但它不会将工作表选项卡名称与范围一起提取。如何获取工作表名称以及单元格范围?
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
答案 0 :(得分:3)
如何获取工作表名称以及单元格范围?
您需要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
答案 1 :(得分:3)
根据您是否希望Workbook
名称也在公式中,有两种方法可以实现此目的。我正在立即窗口中测试这些。
方法1 使用.Address
,External
参数设置为True
?ActiveCell.Address(,,,True)
[第二册] Sheet 1中!$ A $ 1
方法2 使用.Address
以及Range.Parent.Name
中的工作表名称,其中Parent
指的是Worksheet
Range
}
?"'" & ActiveCell.Parent.Name & "'!" & ActiveCell.Address
'Sheet 1中'!$ A $ 1