2017-09-16 52 views
0

我正在查找查看列A中的值的VBA代碼,如果它們相同,則合併列F & G中的單元格行。根據列A中的值合併列F,G中的單元格

我不知道如何做到這一點。

example

+0

有一點補充,如果可能的話,我已經嘗試過,但仍然對我來說很難。在g2中,我希望它合計H2,但是在G5(合併單元格)中,我希望它將h5和H9相加。這是可能的 –

回答

0

您可以使用此代碼:

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

0

檢查下面的代碼。我假設你已經對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 
相關問題