2014-04-04 17 views
19

Vorrei digitare il forum matematico nel codice VBA su molte righe. Mi piacerebbe dividerlo in molte linee. Come lo faccio?Come continuare il codice sulla riga successiva in VBA

Ad esempio:

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

è molto lungo. vorrebbe dividerlo.

provato questo:

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

Ma non funziona .. Hai bisogno di alcune indicazioni su questo ..

+0

cosa importa se il "_" è sulla linea precedente ? – RichS

risposta

38

Per avere a capo nel codice si utilizza _

Esempio:

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

MsgBox a 
+1

C'è qualcosa che può essere usato per l'inizializzazione dell'array? Se c'è un ritorno a capo dopo "_", dà un errore: Dim StringPairs come variante StringPairs = [{ "abc", "def"}, _ { "123", "456"}] –

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

From ms support

To continue a statement from one line to the next, type a space followed by the line-continuation character [the underscore character on your keyboard (_)].

You can break a line at an operator, list separator, or period.

7

In VBA (e VB.NET) il terminatore di riga (ritorno a capo) viene utilizzato per segnalare la fine di un'istruzione. Per rompere le dichiarazioni lunghe in più righe, è necessario

Use the line-continuation character, which is an underscore (_), at the point at which you want the line to break. The underscore must be immediately preceded by a space and immediately followed by a line terminator (carriage return).

(From How to: Break and Combine Statements in Code)

In altre parole: Ogni volta che l'interprete incontra la sequenza <space>_<line terminator>, viene ignorato e l'analisi continua alla riga successiva. Si noti che, anche se ignorata, la continuazione della linea agisce ancora come un separatore di token, quindi non può essere utilizzata nel mezzo di un nome di variabile, ad esempio. Non è inoltre possibile continuare un commento utilizzando un carattere di continuazione della riga.

per rompere la dichiarazione nella sua domanda in diverse linee si potrebbe procedere come segue:

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

(spazi bianchi iniziali vengono ignorati.)

+1

upvoted per spiegazione oltre alla risposta. Commentando aggiungere che c'è un passaggio aggiuntivo se stai cercando di rompere una stringa. Se si desidera avere una stringa su due righe è necessario chiudere la citazione; aggiungi una e commerciale (&), spazio e carattere di sottolineatura (_); e inizia la nuova linea con un'altra citazione. Ricorda di includere uno spazio finale o uno spazio iniziale o finirai con un word mash in cui le due stringhe si uniscono. –

Problemi correlati