如何阻止VBA编辑器删除内部空格?

时间:2015-03-10 03:43:22

标签: vba excel-vba editor excel

我发现在我的代码中对齐标识符,运算符等可以大大提高可读性。在编译或运行代码之前,错误就会跳出屏幕。但是,VBA编辑器会删除多余的空格,从而破坏我的对齐方式。例如,我尝试输入如下几行:

something         = "a" & CStr(iRow1)  'Colm A = Something useful
somethingElse     = "b" & CStr(iRow1)  'Colm B = Something else
dunno             = "c" & CStr(iRow1)  'Colm C = Don't know what this is
whatEver          = "d" & CStr(iRow1)  'Colm D = whatever you want
aVar              = "e" & CStr(iRow1)  'Colm E = A variable
xOrY              = "f" & CStr(iRow1)  'Colm F = Might be X or Y
aLongVariableName = "g" & CStr(iRow1)  'Colm G = Long variable name

但我得到的是:

something = "a" & CStr(iRow1)                      'Colm A = Something useful
somethingElse = "b" & CStr(iRow1)          'Colm B = Something else
dunno = "c" & CStr(iRow1)                                  'Colm C = Don't know what this is
whatEver = "d" & CStr(iRow1)                         'Colm D = whatever you want
aVar = "e" & CStr(iRow1)                            'Colm E = A variable
xOrY = "f" & CStr(iRow1)                            'Colm F = Might be X or Y
aLongVariableName = "f" & CStr(iRow1)  'Colm G = Long variable name

它的可读性低得多。甚至评论也没有一致。请注意,与第二个块相比,在第一个块中的iRow中发现jRow是多么容易。你是否注意到未对齐代码的最后一行中的错误(“f”而不是“g”)?没有对齐就不容易发现。

那么如何通过占用额外的空间来防止VBA编辑器搞砸我的对齐?

3 个答案:

答案 0 :(得分:8)

VBE(VBA' IDE)有一个灵魂。

它早餐吃了无关的空白。

换句话说:你不能这样做。无论你做什么,都会自动删除无关的空白。


精细。现在怎么办?

改变你的风格!

<强>命名

如果很难从iRow告诉jRow,请将行计数器命名为它们的用途:它不应该太难分辨{{1}来自playerRow

<强>评论

如果您的代码中的每个变量都需要描述性注释,那么您的变量名称是否足够描述?这些评论是否真的有用,还是只是说明显了?他们是否比为什么

更多地告诉

<强>声明

当一个方法以半页的局部变量声明开始时,它表明该方法可能比其名称所做的工作更多;你需要提高抽象级别并提取函数/过程。声明变量更接近其使用是另一种使代码更易于阅读和维护的方法。

<强>分配

声明相同的规则适用于此:指定的值在其他地方使用 ,如果您不幸,可能会使用以下两个屏幕。

关于声明/分配更接近使用的要点是,当您实际使用变量时,如果指定的值在,则更容易发现错误你的面孔,而不是在一个&#34;任务块&#34;在其他地方 - 即使该块全部对齐&amp;漂亮。

teamRow

答案 1 :(得分:4)

        something = "a" & CStr(iRow1)  'Colm A = Something useful
    somethingElse = "b" & CStr(iRow1)  'Colm B = Something else
            dunno = "c" & CStr(iRow1)  'Colm C = Don't know what this is
         whatEver = "d" & CStr(iRow1)  'Colm D = whatever you want
             aVar = "e" & CStr(iRow1)  'Colm E = A variable
             xOrY = "f" & CStr(iRow1)  'Colm F = Might be X or Y
aLongVariableName = "g" & CStr(iRow1)  'Colm G = Long variable name

答案 2 :(得分:1)

您可以使用延续字符“_”来“捏造”它,如下所示:

something = _
                    "a" & CStr(iRow1)          'Colm A = Something useful
somethingElse = _
                    "b" & CStr(iRow1)          'Colm B = Something else
dunno = _
                    "c" & CStr(iRow1)          'Colm C = Don't know what This is
whatEver = _
                    "d" & CStr(iRow1)          'Colm D = whatever you want
aVar = "e" _
                        & CStr(iRow1)          'Colm E = A variable
xOrY = _
                    "f" & CStr(iRow1)          'Colm F = Might be X or Y
aLongVariableName = _
                    "f" & CStr(iRow1)          'Colm G = Long variable name