excel - VBA循环不去下一个工作表
问题描述
我有一个 VBA 代码,我想跳过“Sheet1”。但是,循环跳过“Sheet1”,然后结束子。它不会移动到Next ws
.
有7个工作表..
请问我该如何解决?
Sub BrandRank_()
Dim wb As ThisWorkbook
Dim ws As Worksheet
Dim TableName As String
Dim LstObj As ListObjects
For Each ws In ThisWorkbook.Worksheets
With ws
If .Index <> 1 Then
'Insert Table
.ListObjects.Add(xlSrcRange, .Range("A3"), .Range("A3").End(xlDown).End(xlToRight), xlYes).Name = TableName
'Apply a filter to "C3" (Largest to Smallest)
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add2 Key:=.Range("C3"), SortOn:=xlSortOnValues, Order:=xlDescending
.AutoFilter.ApplyFilter
.ListObjects(TableName).ShowAutoFilterDropDown = False
End If
End With
Next ws
End Sub
解决方案
您的 VBA 可能会遍历Personal.xlsb的工作表。
如果您从外部文件运行宏,请使用thisWorkbook属性来引用包含您的宏代码的工作簿。例如,ThisWorkbook是从加载项本身内部引用加载项工作簿的唯一方法。
ActiveWorkbook属性不返回加载项工作簿;它返回调用代码的工作簿。直接按名称引用特定工作簿会更好(见下文)
我还建议考虑通过名称引用工作表,否则如果您(或其他人)更改工作表的顺序、添加隐藏的工作表等,您的代码可能会意外中断。
For Each wsSheet In Workbooks("NameOfYourBook").Worksheets
If wsSheet.Name <> "TOC" Then
'Put your code here
End If
Next wsSheet
您也可以使用.CodeName属性。 查看详细信息。
推荐阅读
- drupal - Drupal 7 中的自定义 404 基本页面有空白标题标签
- python - 在另一个类方法中存储一个类的实例
- javascript - ZeroMQ (ZMQ) 在客户端提供 VivaGraph 图
- kubernetes - 如何测量用户在 Kubernetes 上创建作业与开始在节点上运行该作业的时间之间的时间?
- perl - 如何使用 Beam::Wire 获取服务名称?
- sql - SQL JOIN ON(有两个条件)
- c# - 使用 Unity 的 MVC 控制器构造函数注入中的工作单元和存储库模式不对数据库进行任何更改
- perl - Perl 中的 OS 页面对齐分配
- azure - Docker 上的 Azure CosmosDB 模拟器不生成证书
- javascript - ReactJS 类组件使用 contenteditable 元素渲染 array.map