现在,我的代码说"如果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
答案 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创建为字符串并使用字母作为列名实际上很难增加。