2012-04-23 11 views
2

1つの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 

たり、シート4にシート1を無視したい場合は、なぜ、そして、(右私の理解あたりとしてある)全てのシートに対して同じ操作を実行したい場合は、この

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

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 
関連する問題