现在,我的代码说"如果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作为字符串并使用字母对列名称确实没有意义,因此很难增加。