2017-08-13 5 views
-4

各セルのエントリ間にコンマを入れて、最大12個の異なるセルの情報を1つのセルにマージしたいとします。さらに、最後から二番目と究極の項目の間のカンマが "と"で置き換えられたいと思います。 12個の入力セルのうち、一部のインスタンスのみが任意のインスタンスに値を持ちます。したがって、入力が4つのセルと空白セルが8つある場合、出力は入力セル1、入力セル2、入力セル3と入力セル4になります。逆に、入力が6つのセルと空白セルが6つある場合、I出力が入力セル1、入力セル2、入力セル3、入力セル4、入力セル5、および入力セル6であることが望ましい。セルのExcelと条件付きマージのカンマと "ands"

これを実行する方法はありますか?前もって感謝します。

+0

、このVBAコードを試してみてくださいあなたは 'TEXTJOIN()'を見たことがありますか? – BruceWayne

答えて

1

あなたは何を試してみました?

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

関連する問題