我有一些基本的宏,但我想为每个宏添加一个循环函数。我正在寻找启动循环的起始代码和结束代码以关闭最后一个活动工作表上的循环。
以下是当前代码:
Sub MQA_Shrink()
'
'
'
For Each sht In ThisWorkbook.Worksheets
Range("B:B,D:D,H:I,K:O").Select
Range("K1").Activate
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 1
Columns("B:F").Select
Columns("B:F").EntireColumn.AutoFit
Range("A1:F1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Next sht
End Sub
我就像这个基本的格式化宏来循环浏览所有标签并结束。
我已经捣毁了我在这里看到的不同例子,但似乎没有任何东西可以正常循环。它们都是专门针对请求者的项目量身定制的。有什么建议吗?
答案 0 :(得分:0)
您需要为所有范围对象分配正确的父级,否则它只会引用活动工作表。
Sub MQA_Shrink()
Dim sht As Worksheet
For Each sht In ThisWorkbook.Worksheets
sht.Range("B:B,D:D,H:I,K:O").Delete Shift:=xlToLeft
sht.Columns("B:F").AutoFit
With sht.Range("A1:F1")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Merge
End With
Next sht
End Sub
使用宏录制器之后,应该通过并删除所有.Select
和.Activate
,这会降低代码速度。见HERE