vba - 如果工作表名称等于命名范围中的单元格,则
问题描述
我有一个工作簿,其中包含许多不同人的选项卡,其中包含他们自己的数据。但是,在这些选项卡上工作的宏使用“If sheet name Then”,但它不是动态的。有没有办法根据命名范围使其动态化?
即范围将是约翰、本、史蒂夫等名称的列表,并且宏将搜索工作表名称是否等于该范围内的名称之一。这是当前代码的一部分:
Sub apply_exclusion_format()
Dim sht As Worksheet, r As Range
On Error Resume Next
For Each sht In Worksheets
Set r = sht.Cells.Range("A:AY")
If sht.Name <> "MASTER" And sht.Name <> "Exclusions" _
And sht.Name <> "Bands" And sht.Name <> "Matrix" _
And sht.Name <> "Macros" Then
sht.Select
r.Select
而不是通过使用“sht.Name <>”来排除工作表,我想包括名称在某处保存在工作表上的范围内的工作表。
解决方案
我是根据 Doug Coats 的建议得到的。而不是这个:
Sub apply_exclusion_format()
Dim sht As Worksheet, r As Range
On Error Resume Next
For Each sht In Worksheets
Set r = sht.Cells.Range("A:AY")
If sht.Name <> "MASTER" And sht.Name <> "Exclusions" _
And sht.Name <> "Bands" And sht.Name <> "Matrix" _
And sht.Name <> "Macros" Then
这就是我将其更改为:
Dim sht As Worksheet, rFound As Range
On Error Resume Next
For Each sht In Sheets
Set rFound = ThisWorkbook.Worksheets("Ranges").Range("Reviewer_sheet_names").Find(sht.Name)
If Not rFound Is Nothing Then
我在“范围”工作表上创建了一个命名范围,其中包含宏所作用的工作表。同样,它不是动态的,但编辑起来要容易得多。谢谢道格!
推荐阅读
- arduino - HC-05 模块发送数据问题(Mater + Slave)
- java - Spring Boot:EL 在 JSP 中不起作用
- command-line-interface - IBM Cloud:来自同一本地用户的多个 IBM Cloud CLI 环境(会话)
- c++ - 使用户能够在基于对话框的 MFC 应用程序上选择文件夹和文件
- javascript - 无法从对象获取特定属性而其他对象没有问题
- c++ - 使用 cin 不接受 C++ 输入
- java - java.library.path 中没有 pytorch_jni
- python - 从beeline配置pyhive
- arrays - 如何使用solidity在remix IDE中的数组中插入用户输入数据?
- c++ - 为什么会跳过 Switch 语句?