2012-04-23 42 views
2

我想在所有工作表上運行此代碼,但我無法在一個Excel文件中執行此操作。它只合並第一張紙上的單元格。這裏是我的代碼:試圖在所有Excel工作表上運行代碼

Sub MergeColumns() 
    Dim ws As Worksheet 
    For Each ws In ActiveWorkbook.Worksheets 
    Select Case ws.Name 
    Case "Sheet1", "Sheet2", "Sheet3", "Sheet4" 
    ws.Range("H1:S1").Select 
      Case Else 
    Selection.Merge 
     With Selection 
     .HorizontalAlignment = xlCenter 
     .VerticalAlignment = xlBottom 
    End With 
    End Select 
    Next ws 
End Sub 

我會感謝你的時間相同。

回答

3

這是你正在嘗試?

Option Explicit 

Sub MergeColumns() 
    Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     Select Case ws.Name 
     Case "Sheet1", "Sheet2", "Sheet3", "Sheet4" 
      With ws.Range("H1:S1") 
       .Merge 
       .HorizontalAlignment = xlCenter 
       .VerticalAlignment = xlBottom 
      End With 
     End Select 
    Next ws 
End Sub 

,或者如果你想忽略工作表Sheet1到Sheet4那麼如果你想運行的所有工作表相同的操作(這是正確的按我的理解),那就試試這個

Option Explicit 

Sub MergeColumns() 
    Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     Select Case ws.Name 
     Case "Sheet1", "Sheet2", "Sheet3", "Sheet4" 
     Case Else 
      With ws.Range("H1:S1") 
       .Merge 
       .HorizontalAlignment = xlCenter 
       .VerticalAlignment = xlBottom 
      End With 
     End Select 
    Next ws 
End Sub 
+0

感謝希德!這是我正在尋找的。 :) – Nupur 2012-04-24 18:07:42

0

,爲什麼你需要開關盒嗎?

,你可以這樣寫:

Option Explicit 
Sub MergeColumns() 
    Dim ws As Worksheet 
    For Each ws In ActiveWorkbook.Worksheets 
      With ws.Range("H1:S1") 
       .Merge 
       .HorizontalAlignment = xlCenter 
       .VerticalAlignment = xlBottom 
      End With 
    Next ws 
End Sub 
相關問題