2014-04-04 7 views
19

में अगली पंक्ति पर कोड को जारी रखने के लिए कैसे मैं वीबीए कोड में गणितीय फोरमला टाइप करना चाहता हूं जो कई लाइनें हैं। मैं इसे कई लाइनों में विभाजित करना चाहता हूं। मैं यह कैसे करुं?वीबीए

उदाहरण के लिए:

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

लेकिन काम नहीं कर रहा .. की आवश्यकता है इस पर कुछ मार्गदर्शन ..

+0

इससे कोई फर्क पड़ता है अगर "_" पिछले लाइन पर है ? – RichS

उत्तर

38

कोड में न्यू लाइन करवाने के लिए आप _

उदाहरण का उपयोग करें:

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

MsgBox a 
+1

क्या ऐसा कुछ है जिसे सरणी प्रारंभ करने के लिए उपयोग किया जा सकता है? अगर वहाँ "_" के बाद है एक नई पंक्ति, यह एक त्रुटि देता है: मंद StringPairs संस्करण 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

वीबीए (और वीबीएनईटी) में लाइन टर्मिनेटर (कैरिज रिटर्न) का उपयोग कथन के अंत को इंगित करने के लिए किया जाता है। कई लाइनों में लंबे बयान को तोड़ने के लिए, आपको

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)

करने की जरूरत है दूसरे शब्दों में: जब भी दुभाषिया अनुक्रम का सामना करना पड़ता <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))) 

(अग्रणी व्हाइटस्पेस अनदेखी कर रहे हैं।)

+1

upvoted का सवाल है उत्तर के अलावा स्पष्टीकरण। यह जोड़ने के लिए टिप्पणी करते हुए कि यदि आप स्ट्रिंग को तोड़ने का प्रयास कर रहे हैं तो एक अतिरिक्त चरण है। यदि आप दो लाइनों पर एक स्ट्रिंग रखना चाहते हैं तो आपको उद्धरण को बंद करने की आवश्यकता है; एक एम्पर्सेंड (&), स्पेस, और अंडरस्कोर (_) जोड़ें; और एक और उद्धरण के साथ नई लाइन शुरू करें। पिछली जगह या अग्रणी स्थान शामिल करना याद रखें या आप एक शब्द मैश के साथ समाप्त हो जाएंगे जहां दो तार शामिल हों। –