2017-08-13 37 views
-4

我想將來自多達12個不同單元格的信息合併到一個單元格中,每個單元格的條目之間用逗號隔開。此外,我希望倒數第二項和最終項之間的逗號替換爲「和」。在12個輸入單元中,只有一些在任何給定的實例中都有值;因此,如果有4個輸入單元和8個空白單元格,我希望輸出爲輸入單元1,輸入單元2,輸入單元3和輸入單元4.相反,如果有6個輸入單元和6個空白單元格,則I想要輸出爲輸入單元1,輸入單元2,輸入單元3,輸入單元4,輸入單元5和輸入單元6.excels中的逗號和「ands」 - 單元格的條件合併

有沒有什麼辦法做到這一點?提前致謝。

+0

你嘗試過什麼?你看過「TEXTJOIN()」嗎? – BruceWayne

回答

1

試試這個VBA代碼,

Sub concatWithCommas() 
Dim i As Long, str As String, j As Long 
str = "" 
For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row 
For i = 1 To 12 
    If Cells(j, i) <> "" Then 
     str = str & Cells(j, i) & "," 
    End If 
Next i 
str = Left(str, Len(str) - 1) 
Cells(j, 13) = Application.WorksheetFunction.Substitute(str, ",", " and ", (Len(str) - Len(Replace(str, ",", "")))) 
str = "" 
Next j 
End Sub 

enter image description here

+0

這是我正在尋找的答案,謝謝。對於可靠的問題措辭和缺乏示例的道歉,我對VBA和stackoverflow都很陌生。我想知道是否有辦法將上面的代碼應用到特定的單元格範圍?即我的輸入在單元格B13:E13,B14:E14,B19:E19中。 – bm13563

+0

@BenMagnin請將我的答案標記爲正確,以解決此問題 –

+0

已經這麼做 - 你會知道如何將上面的代碼應用到特定的輸入單元嗎?即B13:E13,B14:E14,B19:E19。我嘗試過定義一個範圍,但是我對VBA很陌生,所以我幾乎不知道從哪裏開始。謝謝。 – bm13563

相關問題