我正在尝试在一个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
我很感激你的时间。
答案 0 :(得分: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
答案 1 :(得分: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