2017-05-29 70 views
-1

我已經看到很多關於合併的問題,但沒有任何我可以操縱的(在我的入門級別的能力中)來回答這個特定問題並且將永遠不勝感激爲您的專業知識和幫助!將單元格具有相同值(不包括「0」)的列進行合併

我正在尋找合併具有特定範圍相同值的不同組的單元格。

下面是輸入和期望結果的示例。我將文件格式化爲「0」和「否」不顯示,但實際描述(代替50%關閉)很長,不能在單個單元格中查看,因此需要合併單元格以更好地顯示信息。還有多家商店每週都會添加新商店,因此我想避免手動合併單元格。

輸入

Month     January February March  April  May 
Store 1 Campaign Period no  yes  yes  yes   no 
Campaign Details   0  50% off 50% off 50% off  0 
Store 2 Campaign Period no  no  no  yes  yes 
Campaign Details   0  0   0 spring fling spring fling 

所需的輸出

Month     January February March April  May 
Store 1 Campaign Period no  yes   yes yes  no 
Campaign Details   0   50% off    0 
Store 2 Campaign Period no  no   no  yes  yes 
Campaign Details   0  0   0  spring fling  
+1

嗨,歡迎來到SO。爲了獲得幫助,你需要展示你個人試圖編寫宏。基本上,你將跨越表格中的單元格,並且每當一組鄰近單元格(在同一行上,我猜)具有相同的「描述文本」時,將它們合併。如果您已經這樣做,請開始此操作或發佈您的當前代碼,我們很樂意幫助您完成。 –

+0

感謝您的反饋!當我輸入下面的代碼我收到的一個錯誤 「內存不足」 –

+0

對不起在這裏它是:子sbMergeColumns() 對於i = 16細胞(Rows.Count,1).END(xlUp).Row 如果範圍( 「二:BDI」)<> 「0」 或範圍( 「二:BDI」)<> 「」 然後轉到16 範圍。( 「二:BDI」)合併(真) Next End Sub –

回答

1

這應該讓你開始。數據假定在「Sheet1」中。它將合併單元格,並在列「A」中標記爲「Campaign Details」的行中。合併在具有相同值的相鄰行單元格上執行 - 至少兩個具有相同值的相鄰單元格將被合併。

Option Explicit 

Sub MergeSameDetails() 
    Dim sht As Worksheet 
    Set sht = Worksheets("Sheet1") 

    Application.DisplayAlerts = False 

    With sht 
    Dim lastrow As Integer, i As Integer, j As Integer, cnt As Integer 
    Dim val As Variant 
    lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    For i = 1 To lastrow 
     If .Cells(i, "A").Value = "Campaign Details" Then 
     cnt = 1 
     val = .Cells(i, 2).Value 
     For j = 3 To 7 
      If val = .Cells(i, j).Value Then 
      cnt = cnt + 1 
      Else 
      If cnt >= 2 And val <> "0" Then 
       .Range(Cells(i, j - cnt), Cells(i, j - 1)).Merge 
       .Cells(i, j - cnt).HorizontalAlignment = xlCenter 
      End If 
      cnt = 1 
      val = .Cells(i, j).Value 
      End If 
     Next 
     End If 
    Next 
    End With 

    Application.DisplayAlerts = True 

End Sub 
+0

感謝您的快速響應!我試着編輯「Campaign Details」的這段代碼,在列「C」開始,並調整j範圍爲「D:BD」,但收到錯誤「下標超出範圍」。然後,我編輯了我的Excel表格,以便「活動詳細信息」列在「A」列中,但仍然收到相同的錯誤。你能幫忙嗎? –

+0

唉唉,沒關係!我玩了一下,並調整了列設置,它的工作!非常感謝你! –

相關問題