我正在研究一个简单的工具,该工具将允许我解析多个CSV文件并将它们吐出到新的工作表“合并”在一起。下面是我的实现(我已经简化它),我的问题:将对象传递给VBA中的过程
A类
private variables as types
property methods for accessing variables
B类
private variables as types
property methods for accessing variables
C类
Private cA as ClassA
Private cB as Collection 'Collection of ClassB
d级 - 部分我的问题
Private cC as Collection 'Collection of ClassC
'Other member variables and their property get/lets
Public Sub AddA(A as ClassA)
If cC.Item(A.foo) is Nothing then
dim tempC as ClassC
set tempC = new ClassC
tempC.A = A
End if
End Sub
主要模块 - 我的问题的另一半
Dim cC as New ClassC
'Initialize Class C, this all works fine
Dim tempA as ClassA
Set tempA = new ClassA
'Set tempA properties
cC.AddA tempA 'This is where my error is
我试图把它当作ByVal
和ByRef
各给了我不同的错误(“ByRef参数类型不匹配”,“无效的程序或参数”和“对象不支持此属性或方法“
我不知道接下来要尝试什么,我甚至尝试了括号”东西“,据推测强制参数为ByVal或ByRef,我不记得,那是昨天。
谢谢。
错误在'AddA'里面,所以有些代码会有帮助。我也打赌你想'公共小组AddA(ByVal A作为ClassA)'。 – GSerg 2011-05-11 14:25:57
@GSerg我在调用子模块的主模块中收到错误,并且我尝试使用'ByVal A作为ClassA',我得到了“无效的过程或参数”错误。请注意,我添加了AddA的代码,并在同一时间完全忽略了一堂课。我已经完全更新了所有的代码。对于那个很抱歉。 – Timbermar 2011-05-11 15:21:28
使用'工具 - >选项 - >常规 - >错误陷印来改变你看到错误的地方。在这种情况下,您可能需要“在课程模块中断”。 – GSerg 2011-05-11 15:28:48