在vba

时间:2018-01-18 02:15:18

标签: vba excel-vba excel

我想知道是否可以在vba excel中对代码行进行分组,以使视图更加愉快。意思是我有1000行代码,并希望对行进行分组以隐藏/显示它们。我知道这在其他编码语言中是可行的,所以我想知道它是否可能在vba中。 感谢

2 个答案:

答案 0 :(得分:1)

简短的回答是否定的,不是开箱即用的。有一个开源工具,可以在将来的版本http://rubberduckvba.com/

中执行此操作

如果你有一个冗长的程序,你可以问自己,如果它不止一件事。作为一般规则,程序应该只做一件事。如果将每个单独的“事物”分解为单个过程,则可以在父子例程中调用每个过程。一本好书就是“Clean Code: A Handbook of Agile Software Craftsmanship

Sub ParentSub()
  ChildSub1()
  ChildSub2()
End Sub

答案 1 :(得分:0)

除了将代码(重构)分解为更小的逻辑函数之外,如果Private/Public设置允许,您还可以在不同的模块中将它们分开。

如果您的代码在类(或工作表)中,那么您也可以使用Friend作为函数/子例程。

当然,一旦重构,我经常发现我构建类使我的代码更简单,更容易维护。这允许你隐藏(封装)你的大部分低级代码,你的主程序现在处于更高的水平,有时几乎(如果你足够眯眼,你已经正确地命名了你的类和方法)看起来像英文可读! / p>

除此之外,不建议使用Call关键字,除非被调用的表达式不以标识符(MSDN ref)开头。在上面的答案中,以下将工作得很好。

Sub ParentSub()
  ChildSub1()
  ChildSub2()
End Sub