我正在尝试从标准化的Excel格式中提取数据,其中我想要的所有值都是namedRanges。 NamedRanges是特定的工作表,例如c_001参考Sheet1!$ X $ 38。
我已经尝试检索工作簿中的所有名称,例如
'Runtime error 13 - Type mismatch
Set namesInWb = Workbooks(wbName).Names
这似乎不起作用,因为所有名称都是特定的工作表?
然后我想我可以通过Range对象获取namne,例如我希望能够使用这样的东西来获取wsName:
tempRange.Worksheet.Name
我首先需要检索Range对象,但是如果不知道工作表名称,我无法想到的任何内容。
'Not working - Runtime error 438 - Object does not support this property or method
Set tempRange = Workbooks(wbName).Range("c_001")
'This works now, only failed due to another error earlier in the code that I had missed
Set tempRange = Range(currentName)
更新:上一个方法现在有效。只是由于我错过的代码中的错误而失败。
答案 0 :(得分:0)
在VBA中,您也可以通过将它们放在如此
的方括号中来引用命名范围Dim namedRange as Range
Set namedRange = [rangeName]
或者直接调用它的方法......
[rangeName].Select
答案 1 :(得分:0)
要选择一个范围,我们应该知道工作表的名称。 Range
是工作表的方法,因此我们无法在工作簿上应用Range
方法。
如果我们不知道工作簿下的工作表名称,则可以使用以下工作表索引
ThisWorkbook.Worksheets(1).Range("A1").Value
您还可以通过使用(如果您需要在同一工作簿上进行多次操作)来知道工作表的名称
ThisWorkbook.Worksheets(1).Name
其中ThisWorkbok
将成为工作簿的对象。