使用IF下的多个语句合并VBA中的多组细胞



现在,我的代码说"如果D列中的任何单元格匹配这些单词",然后将该单元组合在同一行中的f列F到H中。我想要做的是还将两个单元格中的两个单元格合并,顶部单元将具有单词,下面的单元格为空白。我还希望该表可以逐步合并一行每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

尝试此

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作为字符串并使用字母对列名称确实没有意义,因此很难增加。

最新更新