2
我来自C++世界,我正在通过VBA类的第一步。VBA自动类型转换
说我有一个聪明的日期一类,即QDATE
*** Class Module ***
Option explicit
Private xDate_ As Date
Property Let xDate(xVal As Date)
xDate_ = xVal
End Property
Property Get xDate() As Date
xDate = xDate_
End Property
' ... some nice methods follow here...
*** non-Class Module ***
Public Function makeQDate() As QDate
Set makeQDate = New QDate
End Function
示例用法可能是
Dim xQDate as QDate : xQDate = makeQDate()
xQDate.xDate = DateSerial(2000,1,1)
最后一行是不是像你一样一个可以用C++得到。如果我们可以创建隐式转换,允许编写
xQDate = DateSerial(2000,1,1)
这将是太棒了。就像在VBA中可以实现的那样? 非常感谢。
一个提示 - 你可以使一个方法/属性默认一个,这是我可以建议的唯一想法。在这种情况下,你的代码的最后一行代码将会是相同的...... – 2013-04-20 20:54:18
在编辑器中设置VBA中的默认成员是不可能的,你必须按照这里所述做一些魔术 - http:// www.cpearson.com/excel/DefaultMember.aspx – 2013-04-21 03:00:50