7

まず、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)...を含む文字列を返さないようです。

4

7 に答える 7

2

答えは、トルウィンが言ったように

=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 つです。

  1. この関数を使用する任意のセルで単語の折り返しを手動で有効にします
  2. (非推奨) Application.CallerConcatenateRange UDF 呼び出し中に参照を格納し、Application.OnTime(now, "AddWordWrap")呼び出しを設定して AddWordWrap サブルーチンを記述し、格納された参照を使用してワードラップ書式をセルに追加します (これはセルの書式をセル形式で更新できないためです)。 UDF)。この方法はバグが多く、問題があります。
于 2013-11-12T17:32:53.260 に答える
0

CHAR(10) セパレーターを使用するだけです。

=ConcatenateRange(A1:A4;CHAR(10))
于 2013-06-11T20:59:26.253 に答える
0

使用する:

=A1&"[Alt+Enter]"&A2&"[Alt+Enter]"&A3&"[Alt+Enter]"&A4
于 2013-11-04T04:18:23.000 に答える
0

これを使ってみてください

Sheet1.Range("A1").Value = "sgar" & Chr(10) & "saha"
于 2014-08-19T14:18:17.050 に答える