在工作簿中的所有工作表中运行我的macros
目前我有一个macros运行,并在活动工作表中find标题“DATE”和“DT”,并重新格式化列中的单元格。 我希望能够通过所有工作表运行并运行macros。 这里是当前的VBA代码:
Sub DateFormatting() Dim x As Variant With ActiveWorksheet For Each x In .Range(.Cells(2, 1), .Cells(2, .Columns.Count).End(xlToLeft)).Cells If InStr(1, Replace(x.Value, "DATE", "DT", , , vbTextCompare), "DT", vbTextCompare) Then Intersect(.UsedRange, .UsedRange.Offset(2), x.EntireColumn).NumberFormat = "m/d/yyyy h:mm" End If Next End With End Sub
只是总结所有评论:
Option Explicit Sub DateFormatting2() Dim x As Variant Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets With ws For Each x In .Range(.Cells(2, 1), .Cells(2, .Columns.Count).End(xlToLeft)).Cells If InStr(1, Replace(x.Value2, "DATE", "DT", , , vbTextCompare), "DT", vbTextCompare) Then Intersect(.UsedRange, .UsedRange.Offset(2), x.EntireColumn).NumberFormat = "m/d/yyyy h:mm" End If Next x End With Next ws End Sub
注释:
- 您
For Each ws In ThisWorkbook.Worksheet
的For Each ws In ThisWorkbook.Worksheet
结束时错过了 - 你
with ws
语句里面的for each ws
循环都应该是相反的。 如果尚未启动,则不能使用ws
。 - 结束
With
你需要End With
而不是Next
-
Option Explicit
只是为了好的措施。