名称对象返回SheetName

时间:2018-06-13 23:48:31

标签: vba object wildcard named-ranges

我试图循环遍历所有命名范围,如果它们包含使用通配符运算符和LIKE的某个子字符串,则将它们设置为字符串。找到正确的命名范围正在按预期工作。

但是,当我将字符串设置为范围的名称时,我将获得完整的工作表名称,而不仅仅是范围名称。

"'SheetName'!Range Name"应为"Range Name"。在代码中稍后使用字符串时,由于工作表名称而产生错误。我可以修剪和替换,但认为可能有更直接的方法来解决问题。

Dim nm as Name
Dim CurrentRange as String   

If nm.Name Like "*Name" Then
    CurrentRange = nm.Name

1 个答案:

答案 0 :(得分:2)

Name是工作表范围的。将其删除并制作一个具有相同RefersTo范围的新广告,确保它位于Workbook范围内:

"New Name" Excel dialog showing Scope field in a red circle

工作表范围的名称在其名称中包含工作表的名称。

debug output of names("the name").Name values: Sheet1!SheetScopeTest1 and BookScopeTest1