【问题标题】:Using multiple statements under if to merge multiple groups of cells in VBA在if下使用多个语句在VBA中合并多组单元格
【发布时间】:2016-06-15 18:30:59
【问题描述】:

现在,我的代码说“如果 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

【问题讨论】:

    标签: vba excel merge


    【解决方案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 创建为字符串并使用字母作为列名使其难以递增确实没有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-02
      • 2020-01-28
      • 1970-01-01
      • 2016-10-15
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多