首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA标签数据

Excel VBA标签数据
EN

Stack Overflow用户
提问于 2021-01-16 01:16:36
回答 2查看 34关注 0票数 0

我目前正在尝试标记一个表中的数据。该表包含一个对事件进行描述的列。这些描述具有可用于标记事件本身的关键字。因此,我只需要检查每个描述包含哪个关键字来标记它。因此,我尝试使用一条简单的ElseIf语句创建一个函数,以检查描述是否包含如下所示的关键字:

代码语言:javascript
复制
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

对于第一个条件,一切都运行得很好,但是,当第一个条件没有找到时,我们转到第二个条件测试,它会引发一个值错误。有人能帮我解决这个问题吗?任何帮助都是非常感谢的。:)

EN

回答 2

Stack Overflow用户

发布于 2021-01-16 01:40:27

不要使用worksheet属性:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2021-01-16 02:57:23

您还可以使用InStr函数:

代码语言:javascript
复制
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 Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65740614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档