VBA与循环合并单元格

时间:2016-12-28 07:49:30

标签: vba excel-vba excel

我想在A列和B列中合并两个单元格,例如像bellow一样,所以只要我有记录,下面是我的代码但不起作用并且不合并单元格不知道是什么问题。感谢

.Range("A5", "A6").Merge
.Range("A7", "A8").Merge
.Range("A9", "A10").Merge

.Range("B5", "B6").Merge
.Range("B7", "B8").Merge
.Range("B9", "B10").Merge


Dim i As Integer
Dim j As Integer
Dim xlMerge As Range
Dim xlMergeJ As Range

For i = 5 To ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row Step 2

        Set xlMerge = Range(Cells(i, 1), Cells(i + 1, 1))
        With xlMerge
            .Merge
            .HorizontalAlignment = xlCenterAcrossSelection
            .VerticalAlignment = xlCenter
       End With
    Next i

For j = 5 To ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row Step 2

            Set xlMergeJ = Range(Cells(j, 2), Cells(j + 1, 1))
            With xlMergeJ
                .Merge
                .HorizontalAlignment = xlCenterAcrossSelection
                .VerticalAlignment = xlCenter
           End With
        Next j

1 个答案:

答案 0 :(得分:3)

也许你在此之后:

Option Explicit

Sub main()
    Dim i As Long

    With ActiveSheet
        For i = 5 To .Cells(Rows.count, 1).End(xlUp).row Step 2
            With .Cells(i, 1).Resize(2)
                .Merge
                .HorizontalAlignment = xlCenterAcrossSelection
                .VerticalAlignment = xlCenter
            End With
            With .Cells(i, 2).Resize(2)
                .Merge
                .HorizontalAlignment = xlCenterAcrossSelection
                .VerticalAlignment = xlCenter
            End With
        Next i
    End With
End Sub

或其较短的选项:

Sub main()
    Dim i As Long

    With ActiveSheet
        For i = 5 To .Cells(Rows.count, 1).End(xlUp).row Step 2
            With .Range(.Cells(i, 1).Resize(2).Address & "," & .Cells(i, 2).Resize(2).Address)
                .Merge
                .HorizontalAlignment = xlCenterAcrossSelection
                .VerticalAlignment = xlCenter
            End With
        Next i
    End With
End Sub