是否可能在Excel vba中计算类型变量?

是否可能在Excel vba中计算类型变量?,excel,vba,types,vbe,Excel,Vba,Types,Vbe,目前我正在使用excel vba。 我在问自己,是否有可能对用户定义的类型中声明的变量进行计数,如下所示 Public Type NameOfType a as string b as string End Type 这里的结果是2 谢谢您通过VBA扩展性库实现的方法 对VBA项目的编程访问假定,您可以 提取其代码模块的声明头和 分析相关的代码线 (参考 需要“Microsoft Visual Basic for Applications Extensionability 5.

目前我正在使用excel vba。 我在问自己,是否有可能对用户定义的
类型中声明的变量进行计数,如下所示

Public Type NameOfType
   a as string
   b as string
End Type
这里的结果是2


谢谢您

通过VBA扩展性库实现的方法

对VBA项目的编程访问假定,您可以

  • 提取其代码模块的声明头和
  • 分析相关的代码线
(参考 需要“Microsoft Visual Basic for Applications Extensionability 5.3”)

VB编辑器即时窗口中的示例输出

调用CountTypeVars“NameOfType”
可能会得到以下结果:


** Type Statement :         Public Type NameOfType
   Found in Module:         modExample
--------------------------------------------------
Line #        Count #       Variable(s)
--------------------------------------------------
# 4            1            a As String
# 5            2            b As String

** Counted 2 Type Variables.

警告


这种方法将
类型
语句后面的每个代码行计算为一个变量;因此,不会处理更多的代码行,如换行符或注释。

否。这称为重新过滤,用于获取有关程序的信息。大多数情况下,VBA不支持它。计算变量的目的是什么?我怀疑UDT中的字段数在运行时永远不会改变。使用
2
可能是安全的,但这确实会引起X-Y问题的每个信号。哇,@T.M.非常好。对我来说,你的解决办法是有道理的。如果在模块中的结束类型之后,一些代码在内部循环的出口之后,可能是必要的。如果我的理解是正确的@谢谢你,我想我真的有点问题。明天我会再次检查我的代码,如果一切正常,我会在这里发布我所做的。谢谢回复。注意:的退出在以下位置正确:-)-如果有帮助,请勾选绿色复选标记接受。好的,谢谢,我是这样想的。如果找到并且UCase(Declinnes(i))喜欢“END TYPE”,则退出END If,因为在“END TYPE”语句之后可能还有其他代码。。。好的,谢谢。:-)

** Type Statement :         Public Type NameOfType
   Found in Module:         modExample
--------------------------------------------------
Line #        Count #       Variable(s)
--------------------------------------------------
# 4            1            a As String
# 5            2            b As String

** Counted 2 Type Variables.