vba - 循环遍历当前事件工作表中 Excel VBA 中的所有命名范围

标签 vba excel

我希望循环遍历 activeworksheet 中找到的所有命名范围,然后对它们执行某些操作。我使用了下面的代码,但它似乎没有产生任何结果。另外,如果我可以循环遍历包含某些单词的命名范围,那就太好了。例如,我的命名范围被命名为 data1、data2、data3 等。我只想在它们包含单词 data 时对其进行处理。

For Each nm In Activesheets.Names
    MsgBox "nm.name"
Next nm

最佳答案

如果您只想从事件工作表中获取名称,请使用:

Sub Test()
For Each nm In ActiveWorkbook.Names
    If nm.RefersToRange.Parent.Name = ActiveSheet.Name Then MsgBox nm.Name
Next nm
End Sub

^ 此代码将仅返回引用事件工作表上的范围的命名范围。

nm.RefersToRange.Parent 将返回与该范围关联的工作表。

然后我们可以使用 .Name 检索其名称并将其与 ActiveWorksheet 名称进行比较。

在这里您可以看到我在 Sheet4 上有 2 个命名范围,在 Sheet3 上有 1 个

当我运行此代码时,它仅返回 MyName1MyName2 - 它不包括 MyName3,因为它不在事件工作表上.

Ranges

此宏只会返回我的 ActiveSheet (Sheet4) 上的内容

Names

关于vba - 循环遍历当前事件工作表中 Excel VBA 中的所有命名范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43238985/

相关文章:

sql - VBA + SQL Server - 获取最后插入的 ID

vba - 将字符串填充到不同的单元格

vba - Outlook VBA Mailitem 属性 SenderEmailAddress 未正确返回地址

vba - 如何在自定义 Office 功能区中拥有多个上下文菜单

arrays - 如何遍历列并计算平均值?

sql-server - 如何将数据从 Excel 发送到 SQL 临时表以使用 VBA 进行处理?

excel - 不同的工作簿,相同的宏名称和激活快捷方式

java - 如何获取单元格的列字母?

excel - 如何修剪数据字体中的空格?

Python - 将邮政编码作为字符串加载到 DataFrame 中?