根据列A中的值合并列F,G中的单元格

问题描述:

我正在查找查看列A中的值的VBA代码,如果它们相同,则合并列F & G中的单元格行。根据列A中的值合并列F,G中的单元格

我不知道如何做到这一点。

example

+0

有一点补充,如果可能的话,我已经尝试过,但仍然对我来说很难。在g2中,我希望它合计H2,但是在G5(合并单元格)中,我希望它将h5和H9相加。这是可能的 –

您可以使用此代码:

Sub mergeFG() 
    Dim cell As Range 
    Dim cell2 As Range 

    Set cell = Range("A2") 
    Do While cell.Value <> "" 
     Set cell2 = cell.Offset(1) 
     Do While cell2.Value = cell.Value 
      Set cell2 = cell2.Offset(1) 
     Loop 
     Application.DisplayAlerts = False 
     cell.Offset(0, 5).Resize(cell2.Row - cell.Row).Merge 
     cell.Offset(0, 6).Resize(cell2.Row - cell.Row).Merge 
     Application.DisplayAlerts = True 
     Set cell = cell2 
    Loop 
End Sub 

呼叫mergeFG,或者通过其他的代码,或将某些按钮即可。

+0

哇谢谢堆,正是我所需要的 –

+0

不要忘记[标记答案接受](http://stackoverflow.com/help/someone-answers)。 – trincot

检查下面的代码。我假设你已经对Column-A(即ref_num)进行了排序,并且还将SheetName从代码中的“Sample”更改为工作簿表名称。

Sub merge_cells() 

Application.ScreenUpdating = False 

Dim ws As Worksheet 
Dim counter As Integer 

Set ws = ThisWorkbook.Worksheets("Sample") 
end_row = ws.Range("A65536").End(xlUp).Row 

counter = 1 

For i = 2 To end_row 

    If ws.Range("A" & i).Value = ws.Range("A" & i - 1).Value Then 

     counter = counter + 1 

    Else 

     If counter > 1 Then 

      ws.Range("F" & i - counter).Resize(counter).Merge 
      ws.Range("G" & i - counter).Resize(counter).Merge 

     End If 

     counter = 1 

    End If 

Next i 

Application.ScreenUpdating = True 

End Sub