我目前正在尝试标记一个表中的数据。该表包含一个对事件进行描述的列。这些描述具有可用于标记事件本身的关键字。因此,我只需要检查每个描述包含哪个关键字来标记它。因此,我尝试使用一条简单的ElseIf语句创建一个函数,以检查描述是否包含如下所示的关键字:
Public Function Teste(ByVal Gasto As String) As String
' Atualizar Calc
Application.Volatile
If IsError(Application.WorksheetFunction.Search("DULCE", Gasto)) <> True Then
Teste = "RETIRADA DULCE"
ElseIf IsError(Application.WorksheetFunction.Search("SALARIO", Gasto)) <> True Then
Teste = "FOLHA DE PAGAMENTO"
End If
End Function对于第一个条件,一切都运行得很好,但是,当第一个条件没有找到时,我们转到第二个条件测试,它会引发一个值错误。有人能帮我解决这个问题吗?任何帮助都是非常感谢的。:)
发布于 2021-01-16 01:40:27
不要使用worksheet属性:
Public Function Teste(ByVal Gasto As String) As String
' Atualizar Calc
Application.Volatile
If IsError(Application.Search("DULCE", Gasto)) <> True Then
Teste = "RETIRADA DULCE"
ElseIf IsError(Application.Search("SALARIO", Gasto)) <> True Then
Teste = "FOLHA DE PAGAMENTO"
End If
End Function发布于 2021-01-16 02:57:23
您还可以使用InStr函数:
Public Function Teste(ByVal Gasto As String) As String
' Atualizar Calc
Application.Volatile
If InStr(1, Gasto, "DULCE") > 0 Then
Teste = "RETIRADA DULCE"
ElseIf InStr(1, Gasto, "SALARIO") > 0 Then
Teste = "FOLHA DE PAGAMENTO"
End If
End Functionhttps://stackoverflow.com/questions/65740614
复制相似问题