VBA如果单元格等于“”做“”,否则转到下一张表

我想要VBA代码这样做:如果单元格等于“等等等等”,然后插入新列,否则移动到下一张表。 事情是,如果我没有运行它

wSheet

那么一切正常(除了去下一张表)。 当我添加wSheet,代码停留在第一个活动工作表创build额外的列,即使单元格不等于2013年06年。任何build议? 谢谢!

Sub Macro2() ' ' Macro2 Macro ' dim wSheet As Worksheet For Each wSheet In Worksheets If wSheet.Range("R1")="2013 06" Then 'If Range("R1") = "2013 06" Then Columns("R:T").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Columns("L:N").Select Selection.Copy Columns("R:R").Select ActiveSheet.Paste Selection.Replace What:="2013 04", Replacement:="2013 06", LookAt:=xlPart _ , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False ElseIf wSheet.Range("R1")<>"2013 06" Then 'ElseIf Range("R1") <> "2013 06" Then End If Next wSheet End Sub 

你并不需要说明else ,只是 – 什么也不做,这意味着让循环进入下一张表格。 也不build议使用.Select方法,所以我优化了一下你的代码。 看看这是否按预期工作:

 Sub Macro2() Dim wSheet As Worksheet For Each wSheet In Worksheets If wSheet.Range("R1") = "2013 06" Then wSheet.Columns("R:T").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove wSheet.Columns("L:N").Copy wSheet.Paste wSheet.Columns("R:R").Replace What:="2013 04", Replacement:="2013 06", LookAt:=xlPart _ , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End If Next wSheet End Sub