我发现在我的代码中对齐标识符,运算符等可以大大提高可读性。在编译或运行代码之前,错误就会跳出屏幕。但是,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编辑器搞砸我的对齐?
答案 0 :(得分:8)
它早餐吃了无关的空白。
换句话说:你不能这样做。无论你做什么,都会自动删除无关的空白。
改变你的风格!
<强>命名强>
如果很难从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