VBAコードで数行の数学的フォーラムを入力したいと思います。それを多くの行に分割したいと思います。どうすればいいのですか?
例えば:
U_matrix(i, j, n + 1) = k * b_xyt(xi, yi, tn) / (4 * hx * hy) * U_matrix(i + 1, j + 1, n) + (k * (a_xyt(xi, yi, tn) / hx ^ 2 + d_xyt(xi, yi, tn) / (2 * hx)))
とても長いです。分割したいです。
これを試しました:
U_matrix(i, j, n + 1) = k * b_xyt(xi, yi, tn) / (4 * hx * hy) * U_matrix(i + 1, j + 1, n)
_+ (k * (a_xyt(xi, yi, tn) / hx ^ 2 + d_xyt(xi, yi, tn) / (2 * hx)))
しかし、動作していません。これに関するガイダンスが必要です。
コードに改行を含めるには、_
を使用します
例:
Dim a As Integer
a = 500 _
+ 80 _
+ 90
MsgBox a
(i, j, n + 1) = k * b_xyt(xi, yi, tn) / (4 * hx * hy) * U_matrix(i + 1, j + 1, n) + _
(k * (a_xyt(xi, yi, tn) / hx ^ 2 + d_xyt(xi, yi, tn) / (2 * hx)))
ステートメントを1行から次の行に継続するには、スペースに続けて行継続文字[キーボードの下線文字(_)]を入力します。 。
演算子、リスト区切り文字、またはピリオドで改行できます。
VBA(およびVB.NET)では、行末記号(キャリッジリターン)を使用してステートメントの終了を通知します。長いステートメントを複数の行に分割するには、次のことが必要です。
改行したいポイントで、アンダースコア(_)である行継続文字を使用します。 アンダースコアの直前にはスペースが必要で、直後には行末記号(キャリッジリターン)が必要です。
つまり、インタープリターがシーケンス<space>
_
<line terminator>
に出会うと、無視され、解析は次の行に続きます。無視された場合でも、行の継続はトークンセパレータとして機能するため、たとえば変数名の途中で使用することはできません。行継続文字を使用してコメントを継続することもできません。
質問の文をいくつかの行に分割するには、次のようにします。
U_matrix(i, j, n + 1) = _
k * b_xyt(xi, yi, tn) / (4 * hx * hy) * U_matrix(i + 1, j + 1, n) + _
(k * (a_xyt(xi, yi, tn) / hx ^ 2 + d_xyt(xi, yi, tn) / (2 * hx)))
(先頭の空白は無視されます。)
この式=SUMIFS(B2:B10,A2:A10,F2)
をセルG2に挿入する場合は、次のようにします。
Range("G2")="=sumifs(B2:B10,A2:A10," & _
"F2)"
コードの行を分割するには、アンパサンド、スペース、アンダースコアを追加します。