VBA - 参数不是可选的,我不明白为什么

问题描述 投票:0回答:3

我正在使用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
excel vba
3个回答
2
投票
 Call allinone

allinone有参数,但是当你调用它时你不会传入任何参数。因此错误。

你需要的是什么

 allinone milesValue, carTypeValue

(最好避免使用Call - 它已过时且已弃用)

此外,如果已经有一个具有相同名称的参数,则可以在sub中声明变量qazxsw poi。


1
投票

函数miles有两个参数:

allinone

它在这里被称为没有任何参数:

Function allinone(miles As Integer, cartype As Integer) As Single

因此,有一个错误。为避免错误,请在调用时添加一些参数:

Sub CommandButton1_Click()
    Call allinone
End Sub

0
投票

尝试声明你的其他数组

Sub CommandButton1_Click()
    allinone 2, 4
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.