2012-10-18 153 views
0

我想在一个Excel文件一次执行下面的VBA代码每个工作表:如何在一个Excel所有工作表运行相同的代码文件

Sub sample_code()  
    Columns("B:B").Select 
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ 
     SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
     ReplaceFormat:=False 
    Range("A:A,D:J").Select 
    Range("D1").Activate 
    Selection.Delete Shift:=xlToLeft 
    Columns("F:P").Select 
    Selection.Delete Shift:=xlToLeft 
    Columns("A:E").EntireColumn.AutoFit 
    Columns("B:B").ColumnWidth = 30.86 
    Range("A1:E1").Select 
    Selection.Font.Bold = True 
End Sub 

我怎么能这样做?

+0

此代码适用于所有工作表,但更具体地说,它当然在某个时间执行1个工作表。不知道你的意思是“立即” –

回答

5

像这样:

Sub sample_code() 
    Dim ws As Worksheet 

    For Each ws In Worksheets 
     With ws 
      .Columns("B:B").Replace What:=" ", Replacement:="", LookAt:=xlPart, _ 
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
       ReplaceFormat:=False 
      .Range("A:A,D:J").Delete Shift:=xlToLeft 
      .Columns("F:P").Delete Shift:=xlToLeft 
      .Columns("A:E").EntireColumn.AutoFit 
      .Columns("B:B").ColumnWidth = 30.86 
      .Range("A1:E1").Font.Bold = True 
     End With 
    Next ws 
End Sub 
+0

+1准确,简洁的回答 –

1

此外,添加Application.ScreenUpdating = False来开始和Application.ScreenUpdating =末真让这个去得更快。

相关问题