我现在有一些代码,提示用户选择一个范围(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?现在如何使用范围?
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
在最后两行中,我收到错误消息。
答案 0 :(得分:2)
要引用带有字符串变量的工作表,这是语法:
set wks = Worksheets("NameOfWorksheet")
Worksheets 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