2014-04-04 20 views
19

Tôi muốn nhập diễn đàn toán học trong mã VBA có nhiều dòng. Tôi muốn chia nó thành nhiều dòng. Tôi phải làm nó như thế nào?Cách tiếp tục mã trên dòng tiếp theo trong VBA

Ví dụ:

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

là rất dài. muốn chia nó ra.

Cố gắng này:

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

Nhưng không phải làm việc .. Cần một số hướng dẫn về vấn đề này ..

+0

Có vấn đề gì nếu "_" là trên dòng trước ? – RichS

Trả lời

38

Để có xuống dòng trong mã bạn sử dụng _

Ví dụ:

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

MsgBox a 
+1

Có điều gì có thể được sử dụng để khởi tạo mảng không? Nếu có một dòng mới sau "_", nó mang lại một lỗi: Dim StringPairs As Variant 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

Trong VBA (và VB.NET), bộ kết thúc dòng (trả về vận chuyển) được sử dụng để báo hiệu kết thúc câu lệnh. Để phá vỡ báo cáo dài thành nhiều dòng, bạn cần phải

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)

Nói cách khác: Bất cứ khi nào người phiên dịch gặp dãy <space>_<line terminator>, nó sẽ bị bỏ qua và phân tích vẫn diễn ra trên dòng tiếp theo. Lưu ý rằng ngay cả khi bị bỏ qua, việc tiếp tục dòng vẫn hoạt động như một dấu phân tách mã thông báo, vì vậy nó không thể được sử dụng ở giữa tên biến, ví dụ. Bạn cũng không thể tiếp tục nhận xét bằng cách sử dụng ký tự tiếp tục dòng.

Để phá vỡ tuyên bố trong câu hỏi của bạn thành nhiều dòng bạn có thể làm như sau:

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

(khoảng trắng hàng đầu được bỏ qua.)

+1

upvoted cho giải thích ngoài câu trả lời. Nhận xét để thêm rằng có một bước bổ sung nếu bạn đang cố gắng chia nhỏ một chuỗi. Nếu bạn muốn có một chuỗi trên hai dòng, bạn cần phải đóng báo giá; thêm dấu và (&), dấu cách và gạch dưới (_); và bắt đầu dòng mới với một trích dẫn khác. Hãy nhớ bao gồm một dấu cách hoặc không gian hàng đầu hoặc bạn sẽ kết thúc bằng một từ kết hợp nơi hai chuỗi tham gia. –

Các vấn đề liên quan