我正在使用VBA制作迷你里程应用程序,我想我快要完成了,尽管我不明白这意味着“参数不是可选的”。
当我按下按钮时出现错误:
编译错误:参数不可选
第3页
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then Range("E6").Value = 0.23
End Sub
Sub CommandButton1_Click()
Call allinone
End Sub
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then Range("D5").Value = 0.35
End Sub
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then Range("F5").Value = 0.15
End Sub
Private Sub TextBox1_Change()
End Sub
模块
Function allinone(miles As Integer, cartype As Integer) As Single
Dim miles As Integer, vat As Integer, total As Single
Const owncar_rate = 0.35
Const cocar_rate = 0.15
Const vatrate = 0.23
Dim mileage As Single, vat As Single
If Range("E2") = 1 Then
mileage = Range("D5") * Range("E7")
Else
mileage = Range("F5") * Range("E7")
End If
If Range("E7") = 1 Then
vat = Range("E6") * Range("E7")
Else
vat = 0
End If
Range("D10").Value = miles
Range("D11").Value = vat
Range("D12").Value = total
allinone = mileage + vat
End Function
答案 0 :(得分:2)
Call allinone
allinone
具有参数,但是调用时没有传递任何参数。因此是错误。
您需要的是类似的东西
allinone milesValue, carTypeValue
(最好避免使用Call
-它已过时和过时了)
此外,如果您已经有一个具有相同名称的参数,则可以在子对象中删除变量miles
。
答案 1 :(得分:1)
函数allinone
带有2个参数:
Function allinone(miles As Integer, cartype As Integer) As Single
在这里不带任何参数地调用它:
Sub CommandButton1_Click()
Call allinone
End Sub
因此,有一个错误。为避免该错误,请在调用时添加一些参数:
Sub CommandButton1_Click()
allinone 2, 4
End Sub
答案 2 :(得分:0)
尝试声明您的其他数组
Dim miles as Integer, vat as Integer, total as Single
Dim cartype as Integer