如果上面的单元格有内容,但是本身是空白,如何合并列中的单元格

这是什么麻烦我:

对于列P中的单元格,例如P3,如果P2&B3不是空白,但是P3是空白,则将P2与P3合并。 然后进入列P中的下一个单元格,直到B列中的相应单元格(例如:B8)为空,然后停止。

B .... P 1 Monitor Tom 2 Mouse Ann 3 Keyboard 4 Sticker 5 Speaker John 6 Cable 7 Fan Rose 8 

所以对于上面的表格,我想合并P2:P4&P5:P6。 我尝试了几次与我可怜的VBA技能,但失败了…

这个代码是我在这个网站上find的,我试图编辑它,看看这是否可以解决我的问题,但它不工作…

 Sub Merge() LR = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row For i = 1 To LR If ActiveSheet.Cells(i, 1).Value <> "" And ActiveSheet.Cells(i + 1, 1).Value = "" And ActiveSheet.Cells(i + 1, 2).Value <> "" Then u = i + 1 Do While ActiveSheet.Cells(u, 1).Value = "" And ActiveSheet.Cells(u, 2) <> "" u = u + 1 Loop ActiveSheet.Range("A" & i & ":A" & (u - 1)).Select With Selection .Merge .BorderAround Weight:=xlMedium .WrapText = True '.VerticalAlignment = x1VAlignTop '.HorizontalAlignment = xlLeft End With Sheets(DataSheet).Range("B" & i & ":B" & (u - 1)).BorderAround Weight:=xlMedium i = u + 1 End If 

接下来我结束小组

尝试这个:

 Dim i As Integer, a As String, b As String, c As Integer, d As Integer i = 11 a = "B" b = "P" c = 0 d = 0 While Range(a & i) <> "" If Range(b & i) = "" Then If c = 0 And i > 1 Then c = i - 1 d = 1 Else d = d + 1 End If Else If c > 0 And d > 0 Then Range(b & c & ":" & b & (c + d)).Merge End If c = 0 d = 0 End If i = i + 1 Wend If c > 0 And d > 0 Then Range(b & c & ":" & b & (c + d)).Merge End If