在Excel VBA中使用类

我正在尝试使用类定义来计算Excel VBA中的某些内容。 主要目标是在一个类Calc1中的一个类中计算一个简单的比例。 当执行模块时,我收到以下错误:

函数或variables的预期

在模块的行中

 MsgBox myCalc1.Calc1 

代码如下

定义如下:

 ' These are properties Public dat_date1 As Date Public dat_date2 As Date Public str_Option As String Dim ratio As Double Dim nominator As Double Dim denominator As Double ' These are methods Sub Calc1() ' Code for day count conventions If str_Option= "o1" Then nominator = (dat_date2-dat_date1) denominator = 2 ElseIf str_Option = "o2" Then nominator = (dat_date2-dat_date1) denominator = 3 Else MsgBox "No function defined" End If ratio = nominator / denominator End Sub 

我的模块定义如下:

 Sub ModuleCalc() Dim myCalc1 As clsCalc Set myCalc1 = New clsCalc With myCalc1 .dat_date1 = "01/02/2015" .dat_date2 = "28/02/2015" .str_Option= "o1" End With MsgBox myCalc1.Calc1 End Sub 

您的实际错误是因为Calc1不是一个函数,所以它不会返回一个值,因此您不能将它作为parameter passing给消息框对象。

我怀疑你的函数应该是这样的:

 Function Calc1() As Double ' Code for day count conventions If str_Option= "o1" Then nominator = (dat_date2-dat_date1) denominator = 2 ElseIf str_Option = "o2" Then nominator = (dat_date2-dat_date1) denominator = 3 Else MsgBox "No function defined" End If Calc1 = CDbl(nominator / denominator) End Sub 

现在,您可以使用它将值传递回消息框。