Vba 如何使此函数解释空单元格?

Vba 如何使此函数解释空单元格?,vba,excel,Vba,Excel,我觉得逻辑是正确的…我在a列中有一个很大的单词列表,如果a列中的一个单词恰好是我另一列中单词的子字符串,那么我想替换它,否则就别管这个单词了 下面的脚本因空单元格而崩溃,我得到了大量的!值错误 Function Find_Bad_Replace_Good(inputValue as String) as String Dim v As Long, vList As Variant With ActiveSheet vList = .Range(.Cells(1, 1)

我觉得逻辑是正确的…我在a列中有一个很大的单词列表,如果a列中的一个单词恰好是我另一列中单词的子字符串,那么我想替换它,否则就别管这个单词了

下面的脚本因空单元格而崩溃,我得到了大量的
!值
错误

Function Find_Bad_Replace_Good(inputValue as String) as String
  Dim v As Long, vList As Variant
    With ActiveSheet
        vList = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value2
        For v = LBound(vList, 1) To UBound(vList, 1)
            If CBool(InStr(1, inputValue, vList(v, 1), vbTextCompare)) Then
                Find_Bad_Replace_Good = vList(v, 1)
                Exit For
            End If
        Next v
    End With
End Function

不确定,如果这是问题所在……但是……我猜当列(vList(v,1))中的数据为空时,以下条件将为真……如果为空,您可能希望跳过它

If CBool(InStr(1, inputValue, vList(v, 1), vbTextCompare)) Then
换成

If vList(v, 1) <> "" And CBool(InStr(1, inputValue, vList(v, 1), vbTextCompare)) Then
如果vList(v,1)”和CBool(InStr(1,inputValue,vList(v,1,vbTextCompare))则

我也有类似的想法,但我的列表肯定不是空的:(请提供更详细的答案,并正确设置代码格式。运行代码时,我没有发现任何错误。能否提供第一列的数据示例以及给出错误的方法参数?是,例如,如果abc在a列中,请尝试在另一列中运行函数。它进入第二个循环,并导致一个!值。)我的Excel上的ror使用什么参数调用函数?你需要更具体。如果是自定义公式,你需要这样说,并提供一个如何使用它的示例。