2012-04-23 3 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 

또는 Sheet4의에 Sheet1의를 무시하려는 경우 다음 (오른쪽 나의 이해에 따라입니다) 모든 시트에 대해 동일한 작업을 실행하려면 다음이

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 
관련 문제