ListBox不返回结果

时间:2019-03-21 10:11:37

标签: excel vba userform

我试图找出一个范围内的哪些单元格包含某个字符串。

我有两列:

enter image description here

如果商品说明包含意大利,我希望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并运行它时,我什么也没有得到,是吗?

1 个答案:

答案 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)以在比较中使用特定于语言环境的规则。