在if下使用多个语句在VBA中合并多个单元组

时间:2016-06-15 18:31:00

标签: vba excel-vba merge excel

现在,我的代码说"如果D列中的任何单元格与这些单词相匹配" ",然后将该列中的单元格从F列合并到H"。我想要做的是合并D列中的两个单元格,顶部单元格将有单词,下面的单元格将为空白。我还希望表格逐行合并每3个单元格,所以就像在F到H之后它会跳过I然后合并J-L。这是代码:

Sub Merge_PlansourceCategories()
Dim RgToMerge As String


For i = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).row
    RgToMerge = ""
    If Cells(i, 4) = "red" or cells (i, 4) = "blue" Then
    RgToMerge = "$F$" & i & ":$H$" & i + 1        



   'for step loop to make this easier?
    With range(RgToMerge)
        .Merge
        .HorizontalAlignment = xlCenterAcrossSelection
        .VerticalAlignment = xlCenter
    End With

    End If

Next i

End Sub

1 个答案:

答案 0 :(得分:1)

试试这个

Sub Merge_PlansourceCategories()
    For i = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
        If Cells(i, 4) = "red" Or Cells(i, 4) = "blue" Then
            For j = 1 To 2
                With Range(Cells(i, j * 4 + 2), Cells(i, j * 4 + 4))
                    .Merge
                    .HorizontalAlignment = xlCenterAcrossSelection
                    .VerticalAlignment = xlCenter
                End With
            Next j
            With Range(Cells(i, 4), Cells(i + 1, 4))
                .Merge
                .VerticalAlignment = xlCenter
            End With
        End If
    Next i
End Sub

将RgToMerge创建为字符串并使用字母作为列名实际上很难增加。

相关问题