2

我有一个电子表格,每行都包含一个摘要列(K 列)。我需要匹配摘要列中的某些单词,以便在新列(列 V)中分配类别名称。

我尝试使用普通的 excel If 语句执行此操作,但我发现存在限制。所以现在我正在尝试使用以下 VBA 代码。

Public Function getCategory()

V_End_Of_Table = ActiveSheet.UsedRange.Rows.Count 'count the number of rows used'

Dim cell As Range


For Each cell In Range("K2:K" & V_End_Of_Table) 'loop through each row until end of table'


 If InStr(1, cell.Value, "Nationalities", vbTextCompare) > 0 Then
    Range("V" & V_End_Of_Table).Value = "Nationalities"
Else
    Range("V" & V_End_Of_Table).Value = "No Match Found"
End If

Next 'move onto next cell'

End Function

所以我试图遍历每一行,匹配文本并分配值。就目前而言,我只是得到#VALUE!回来。如果我改变

范围(“V”和V_End_Of_Table)。值

消息框

它将返回正确的字符串。

4

1 回答 1

4

像这样的兄弟:

For Each cell In Range("K2:K" & V_End_Of_Table)
    If InStr(1, cell.Value, "Nationalities", vbTextCompare) > 0 Then
        Range("V" & cell.Row).Value = "Nationalities"
    Else
        Range("V" & cell.Row).Value = "No Match Found"
    End If
Next

而不是InStr你可以使用StrComp函数来比较 2 个单词

于 2013-05-21T09:09:10.693 回答