Подтвердить что ты не робот

Как продолжить код на следующей строке в VBA

Я хотел бы набрать математический forumla в коде 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)))

Но не работает.. Нужно руководствоваться этим..

4b9b3361

Ответ 1

Чтобы использовать символ новой строки в коде, вы используете _

Пример:

Dim a As Integer
a = 500 _
  + 80 _
  + 90

MsgBox a

Ответ 2

(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)))

От поддержки ms

Чтобы продолжить утверждение из одной строки в другую, введите пробелза которым следует символ продолжения строки [символ подчеркивания на клавиатуре (_)].

Вы можете разбить строку на оператора, разделителя списков или периода.

Ответ 3

В 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)))

(Ведущие пробелы игнорируются.)

Ответ 4

Если вы хотите вставить эту формулу =SUMIFS(B2:B10,A2:A10,F2) в ячейку G2, вот как я это сделал.

Range("G2")="=sumifs(B2:B10,A2:A10," & _

"F2)"

Чтобы разделить строку кода, добавьте амперсанд, пробел и подчеркивание.