【问题标题】:How to continue the code on the next line in VBA如何在 VBA 中继续下一行的代码
【发布时间】:2014-05-16 06:29:36
【问题描述】:

我想在 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)))

但不起作用..需要一些指导..

【问题讨论】:

  • “_”在上一行是否重要?
  • 不,没关系。续行是一个空格字符,后跟一个下划线字符 (_),然后是一个行终止字符(Enter 键)

标签: vba excel


【解决方案1】:

要在代码中添加换行符,请使用 _

例子:

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

MsgBox a

【讨论】:

  • 有什么东西可以用于数组初始化吗?如果 "_" 后面有换行符,则会报错: Dim StringPairs As Variant StringPairs = [ {"abc", "def"}, _ {"123", "456"}]跨度>
  • 应该是" _",而不是"_"
  • 相反:如果我想将 2 行单独的代码合并为 1 行,有没有办法? (就像; 在很多语言中一样)
  • @JackeyOL 正则冒号 : 用于 VBA 中。例如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)))

From ms support

要将语句从一行继续到下一行,请输入空格 后跟换行符 [下划线字符 在您的键盘上 (_)]。

您可以在运算符、列表分隔符或句点处换行。

【讨论】:

    【解决方案3】:

    在 VBA(和 VB.NET)中,行终止符(回车)用于表示语句的结束。要将长语句分成几行,您需要

    在您希望换行的位置使用续行符,即下划线 (_)。 下划线前必须紧跟空格,后跟换行符(回车)。

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

    (忽略前导空格。)

    【讨论】:

    • 除了回答外,还赞成解释。评论补充说,如果你试图分解一个字符串,还有一个额外的步骤。如果你想在两行上有一个字符串,你需要关闭引号;添加与号(&)、空格和下划线(_);并以另一个报价开始新行。请记住包含尾随空格或前导空格,否则您最终会得到两个字符串连接的单词混搭。
    【解决方案4】:

    如果您想将此公式=SUMIFS(B2:B10,A2:A10,F2) 插入到单元格 G2 中,我就是这样做的。

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

    要分割一行代码,请添加一个 & 符号、空格和下划线。

    【讨论】:

    • 我只想补充一点,如果您在文字字符串的中间进行拆分,则仅在 VBA 中才需要此特定方法。否则,您只需要一个空格和一个下划线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2017-08-28
    • 2019-03-22
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    相关资源
    最近更新 更多