動態垂直儲存格合併,在 VBA 或巨集中

動態垂直儲存格合併,在 VBA 或巨集中

我正在獲取每個訂購者訂購的每件商品的一行資料。我正在嘗試將其合併到人員的一排並合併訂購的物品

電子表格中的原始資料:
電子表格中的原始數據

數據的最終目標:
數據的最終目標

從查看您的答案到... 如果相同的行合併到不同的列中,則用於合併列中的儲存格的巨集

我知道該怎麼做。

我可以先嘗試將所有名稱合併到一個儲存格中,然後,我在上面的貼文中遇到了一個情況。儘管我不確定我該如何做到這一點。如果是 if 子句 A1=A2, A1&'',現在對我來說不太有效。

因此,對此的任何幫助都會很棒。

答案1

UDF&的組合SUBSTITUTE可以解決這個問題:

在此輸入影像描述

怎麼運作的:

  • 放入0儲存格I236並將公式放入儲存格I237:

=IF(G236=G237,I236+1,0),把它填下來。

  • 要么按Alt+F11 或右鍵單擊S按 T​​AB 鍵並點擊V檢視程式碼筆VB編輯器。
  • C奧比&將此 VBA 程式碼設為中號奧杜勒。

    Function SingleCellValue(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
    
    Dim i As Long
    Dim xRet As String
    For i = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(i, 1) = Lookupvalue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(i, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(i, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellValue = Left(xRet, Len(xRet) - 1)
    End Function
    
  • 在儲存格中寫入公式H249:

=SingleCellValue(G249,G236:H246,2,",")

  • 單元格中的最終公式I249:

=SUBSTITUTE(H249, "Cust. Order,", "", 1)

向下填寫公式。

注意

  • 為了以後的整潔,您可以隱藏 Cell 中的值H249:H251
  • 根據需要調整公式中的儲存格引用。

相關內容