vba - 遍历命名范围列表
问题描述
我找到了很多例子,但它在我的情况下不起作用,我不知道为什么。非常基本的代码:
Sub Test()
Dim namCur As Name
For Each namCur In ActiveSheet.Names
MsgBox "Name: " & namCur.Name & ", Refers To: " & namCur.RefersTo
Next namCur
End Sub
当我使用时我有同样的问题Worksheets("Assumptions").Names
当我观看时ActiveSheet.Name
,这是正确的,我得到“假设”,您可以在命名范围列表下方的图片中看到。但我从来没有得到 MsgBox 和 For 循环直接到最后。编辑:非常重要,我只需要循环这张表的命名范围,而不是整个工作簿任何想法?
我使用 Excel 2016
解决方案
您的解决方案将仅列出范围设置为仅 ActiveSheet 的名称。
改变这个
For Each namCur In ActiveSheet.Names
对此
For Each namCur In ThisWorkBook.Names
列出工作簿中的所有名称。然后,您可以检查 RefersTo 地址以检查它是否适用于 ActiveSheet。
Sub Test()
Dim namCur As Name
Dim TargetSheetName As String
TargetSheetName = "Assumptions"
For Each namCur In ThisWorkbook.Names
If Range(namCur.RefersTo).Parent.Name = TargetSheetName Then MsgBox "Name: " & namCur.Name & ", Refers To: " & namCur.RefersTo
Next namCur
End Sub
推荐阅读
- python - Twilio Media Stream 和 websocket 服务器 socketio python
- machine-learning - 栖息地挑战:运行DD-PPO脚本时遇到文件**.scn不存在错误
- python - 使用 CELF 的网络中的影响最大化
- powershell - PowerShell 和 conda 的 vscode 问题
- javascript - 为什么类 JS 执行两次?
- excel - Excel 表单控制按钮,可添加新行,但随表格移动
- javascript - 我应该如何将服务器返回的 aes 密钥存储在浏览器中?
- android - Jetpack compose dialogFragment 等效
- git - Git 拒绝跟踪某些文件(git add -f 不工作)
- apache-flink - 当我们更新工作时,flink 如何处理未使用的键控状态字段