我正在使用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
Call allinone
allinone
有参数,但是当你调用它时你不会传入任何参数。因此错误。
你需要的是什么
allinone milesValue, carTypeValue
(最好避免使用Call
- 它已过时且已弃用)
此外,如果已经有一个具有相同名称的参数,则可以在sub中声明变量qazxsw poi。
函数miles
有两个参数:
allinone
它在这里被称为没有任何参数:
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