我在VBA
中有以下功能:
Public Function lorh(custo As Integer)
If custo > 10.99 And custo <> 0 Then
lorh = "1.4"
Else
If custo < 11 And custo <> 0 Then
lorh = "1.35"
Else
If custo <= 0 Or custo < 0 Then
lorh = "Valor Inválido"
End If
End If
End If
End Function
现在我需要的是从一个sub或更好的宏开始调用这个函数,所以我可以将它与excel
工具栏上的自定义按钮相关联。谁能指导我?
答案 0 :(得分:3)
实际上,如果你在模块中有这个功能,你可以直接在工作表单元格中引用它,就像你使用Excel的公式一样。
=lorh(A1)
为了让您的代码从宏按钮运行,它必须是 Sub 而不是功能
我认为下面的代码会按你想要的方式运行,我删除了多余的部分以及Barranka。
Public Sub lorh()
Dim lorh As String
custo = ActiveCell.Value
If custo > 10.99 Then
lorh = "1.4"
Else
If custo > 0 Then
lorh = "1.35"
Else
lorh = "Valor Inválido"
End If
End If
ActiveCell.Value = lorh
End Sub
此宏将使用活动单元格值,就像在函数中使用 custo 参数一样。
答案 1 :(得分:1)
如果您需要在excel表中使用您的功能,您只需要在任何单元格中编写它,就像andrux所说。
如果你需要再次从sub中调用它,你只需要编写它:
public sub aSubprocedure()
' Any variables and other instructions go here
var = lorh(input)
' Your code goes on
end sub
然后您可以将子程序分配给按钮。
您的代码的一些建议:
我建议你的功能如下“清理”:
Public Function lorh(custo As Integer)
If custo > 10.99 And custo <> 0 Then
lorh = "1.4"
Else If custo < 11 And custo <> 0 Then
lorh = "1.35"
Else If custo <= 0 Then
lorh = "Valor Inválido"
End If
End Function
请注意,if custo <= 0 or custo < 0
是多余的......您只需要custo<=0
。
希望这有助于你