如何构造将参数直接传递给自己的类的对象?
像这样的东西:
Dim this_employee as Employee
Set this_employee = new Employee(name:="Johnny", age:=69)
Run Code Online (Sandbox Code Playgroud)
无法做到这一点非常烦人,你最终会得到一些肮脏的解决方案来解决这个问题.
我需要在VBA中制作一些需要互相引用的自定义对象,我有一些问题.
首先 - 对象构造函数如何在VBA中工作?有施工人员吗?
第二 - 有破坏者吗?VBA如何处理对象生命周期的结束?如果我有一个引用其他对象的对象(这是他们唯一的引用),那么我可以将它设置为Nothing并用它完成或者是否会产生内存泄漏?
这种准OO的东西只是有点刺激.
例如,我有一个实现B类的A类
--- A级----
implements B
public sub B_do()
end sub
Run Code Online (Sandbox Code Playgroud)
- 班B ----
public sub do()
end sub
Run Code Online (Sandbox Code Playgroud)
如何从A调用do()?(super.do())那么,我如何为这两个类定义一些公共变量?现在我只能继承函数,子和属性......
补充:同一个问题http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/5a83d794-3da1-466a-83d3-5d2eb0a054b2
补充说:不可能跨类别分享变量.您应该实现属性(与函数相同).
我正在使用Visual Basic 98中的一些旧代码,并且有几个类的名称前面带有“ I”。但是,大多数类都没有此名称。
这是IXMLSerializable.cls文件的内容。
' Serialization XML:
' Create and receive complete split data through XML node
Public Property Let SerializationXML(ByVal p_sXML As String)
End Property
Public Property Get SerializationXML() As String
End Property
Public Property Get SerializationXMLElement() As IXMLDOMElement
End Property
Run Code Online (Sandbox Code Playgroud) 我试图弹出一个类似的消息,
"There are 3 Reports available . They are Today, Yesterday, Day before"
Run Code Online (Sandbox Code Playgroud)
这是代码,
On Error Resume Next
For Each a In MonthYear
arr.Add a, a
Next
For i = 1 To arr.Count
Cells(i, 1) = arr(i)
Next
MsgBox ("There are " & arr.Count & " Reports available. They are " & arr &
Run Code Online (Sandbox Code Playgroud)
但它没有用.它说没有找到sub或argument.
我之前在Code Review中发布了这个,我想这不是正确的地方.希望这是.
我已经为Excel工作表订单表单的各种操作创建了几十个Subs.每天都有数百个这样做,必须检查很多东西.
例程是当有人打开其中一个工作表时,他们做的第一件事就是运行一个调用其他几个工作表的宏.所以它基本上是这样的:
Sub AllMacros()
Call Macro1
Call Macro2
Call Macro3
Call Macro4
Call Macro5
Call Macro6
Call Macro7
Call Macro8
Call Macro9
Call Macro10
Call Macro11
Call Macro12
Call Macro13
Call Macro14
Call Macro15
Call Macro16
Call Macro17
Call Macro18
Call Macro19
Call Macro20
End Sub
Run Code Online (Sandbox Code Playgroud)
我这样做是因为有时只需要运行其中一个Subs,因此它们将被单独执行.
我的主要问题是:这种技术本身不是一个好主意吗?我知道我没有显示所有代码,但这不是重点.在这里发布的代码太多了.我想我正在寻找共识的答案是"是的,没关系." 或者"不,这样做会更好."
vba ×6
excel ×3
excel-vba ×3
constructor ×2
class ×1
destructor ×1
factory ×1
inheritance ×1
memory-leaks ×1
object ×1
oop ×1