まず、VBA初心者です。
私はこのソリューションhow-to-merge-all-column-into-one-cell-in-excel[stackoverflow] を実装していますが、フォローオンがあります。
A1:I
A2:am
A3:a
A4:boy
私の出力は次のとおりです。Iamaboy
しかし、1つのセルに入れたいです:
I
am
a
boy
vbNewLine
関数は、chr(10)
またはchr(13)
...を含む文字列を返さないようです。
まず、VBA初心者です。
私はこのソリューションhow-to-merge-all-column-into-one-cell-in-excel[stackoverflow] を実装していますが、フォローオンがあります。
A1:I
A2:am
A3:a
A4:boy
私の出力は次のとおりです。Iamaboy
しかし、1つのセルに入れたいです:
I
am
a
boy
vbNewLine
関数は、chr(10)
またはchr(13)
...を含む文字列を返さないようです。
答えは、トルウィンが言ったように
=ConcatenateRange(A1:A4,CHAR(10))
または、[alt-enter] を使用して、次のように書くこともできます。
=ConcatenateRange(A1:A4,"
")
「でも待ってください」とあなたは言います。
そうですね、Excel などで手動で入力したりI[alt-enter]am[alt-enter]a[alt-enter]boy
、Excel などのステートメントを実行したりする[A1] = "I" & vbNewLine & "am"
と、セルの書式が自動的に変更され、ワード ラップがオンになります。改行をセルに表示するには、ワードラップが必要です。ただし、改行を含む文字列を UDF から返す場合、Excel は形式を更新しません。
考えられる解決策は次の 2 つです。
Application.Caller
ConcatenateRange UDF 呼び出し中に参照を格納し、Application.OnTime(now, "AddWordWrap")
呼び出しを設定して AddWordWrap サブルーチンを記述し、格納された参照を使用してワードラップ書式をセルに追加します (これはセルの書式をセル形式で更新できないためです)。 UDF)。この方法はバグが多く、問題があります。CHAR(10) セパレーターを使用するだけです。
=ConcatenateRange(A1:A4;CHAR(10))
使用する:
=A1&"[Alt+Enter]"&A2&"[Alt+Enter]"&A3&"[Alt+Enter]"&A4
これを使ってみてください
Sheet1.Range("A1").Value = "sgar" & Chr(10) & "saha"