![](/img/trans.png)
[英]How do I get a range's address including the worksheet name, but not the workbook name, in Excel VBA?
[英]Get Workbook Name and Worksheet Name from a Range in Excel-VBA
我现在有一些代码,提示用户选择一个范围(1个区域,1列,几行)。 这是提示用户执行此操作的代码:
MsgBox "Select a continuous range of cells where numeric values should be appended."
Set Rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8) 'Type Values, 8 - Range object
但是,如何从上述选择中获得工作簿名称和工作表名称?
我需要这个:
目的地ws的工作表名称 -最好也从上述代码中读取该名称 ,并在其中提示用户“ Set Rng / --- /”
源wb的工作簿名称 -读取目标ws后,我想通过打开拨号提示用户以选择源工作簿,在此我将提示用户选择其他范围(源范围)-输入该范围3&4。
源ws的工作表名称 - 参见3
还希望我想拥有绝对的ws名称“ Sheet1”等,而不是它的名称(例如Kalle Anka)。
非常感谢!
编辑:我知道在输入对话框显示中是否选择了另一个ws或wb,而不是从启动宏的位置开始选择的,即“ [Cognos Orders and deliveryies.xlsx]卡车订单”!$ F $ 11:$ F $ 18。 但是,如果我将“设置为范围”设置为暗淡-有什么方法可以检索该信息? 如果它是一个字符串,则可以用! 然后]分别获得ws和wb? 现在如何使用Range?
EDIT2:根据以下答案,我尝试了以下结果/问题:
Sub AppendCognosData()
Dim Rng As Range
Dim AppendWb As Workbook
Dim AppendWs As Worksheet
Dim AppendWb2 As Workbook
'Create a reference to Wb where to append data
Set AppendWb = ThisWorkbook
MsgBox "Select a continuous range of cells (in a column) where numeric values should be appended."
Set Rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8) 'Type Values, 8 - Range object
AppendWs = Rng.Parent.Name
AppendWb2 = Rng.Parent.Paranet.Name
在最后两行,我得到错误。
要使用字符串变量引用工作表 ,请使用以下语法:
set wks = Worksheets("NameOfWorksheet")
工作表MSDN
要使用字符串变量引用工作簿 ,请执行以下操作:
set wkb = Workbooks("NameOfWorkbook")
Workbook MSDN
现在,问题是如何从选择中获取字符串"NameOfWorksheet"
和"NameOfWorkbook"
。 这是一些最小的示例:
Public Sub TestMe()
Dim wks As Worksheet
Dim wkb As Workbook
Dim rng As Range
Set rng = Selection
Debug.Print rng.Parent.Name 'Name of the worksheet
Debug.Print rng.Parent.Parent.Name 'Name of the workbook
Debug.Print rng.Parent.CodeName 'Code Name of the worksheet
Set wks = Worksheets(rng.Parent.Name)
Debug.Print wks.Name
Set wkb = Workbooks(rng.Parent.Parent.Name)
Debug.Print wkb.Name
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.