我试图找出一个范围内的哪些单元格包含某个字符串。
我有两列:
如果商品说明包含意大利,我希望ListBox返回商品编号。
我以用户形式使用了以下代码:
Private Sub CommandButton1_Click()
row_number = 1
Do
DoEvents
row_number = row_number + 1
item_number = Sheet1.Range("A" & row_number)
item_description = Sheet1.Range("B" & row_number)
If InStr(item_description, "italy,") > 0 Then
UserForm.ListBox1.AddItem (item_number)
End If
Loop Until row_number = 423
End Sub
当我按下F5并运行它时,我什么也没有得到,是吗?
答案 0 :(得分:1)
我们看不到B列中的文本,但我认为它包含“意大利”而不是“意大利”。
要使用Instr比较但忽略大小写,您需要使用:
If InStr(1,item_description, "Italy,",vbTextCompare) > 0 Then
根据Microsoft:
InStr ([[开始],字符串1,字符串2,[比较])
零件说明
开始 可选。数值表达式,用于设置每次搜索的起始位置。如果省略,则从第一个字符位置开始搜索。如果start包含Null,则会发生错误。 如果指定了compare,则必须使用start参数。
字符串1 必需。正在搜索字符串表达式。
字符串2 必需。寻找字符串表达式。
比较 可选。指定字符串比较的类型。如果compare为Null,则会发生错误。如果省略了比较,则“选项比较”设置将确定比较的类型。指定一个有效的LCID(LocaleID)以在比较中使用特定于语言环境的规则。