ListBox не возвращает результаты - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь выяснить, какие ячейки в диапазоне содержат определенную строку.

У меня есть два столбца:

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 Ответ

1 голос
/ 21 марта 2019

Мы не можем видеть текст в столбце B, но я предполагаю, что он содержит «Италия», а не «Италия».

Для сравнения с использованием Instr, но игнорируйте регистр, вам необходимо использовать:

If InStr(1,item_description, "Italy,",vbTextCompare) > 0 Then

По данным Microsoft:

InStr ([ start ], строка1, строка2, [ сравнение ])

Деталь Описание

start Необязательно .Числовое выражение, которое устанавливает начальную позицию для каждого поиска.Если опущен, поиск начинается с первой позиции символа.Если start содержит Null, происходит ошибка. Аргумент start необходим, если указано сравнение.

string1 Обязательно .Разыскивается строковое выражение.

string2 Обязательно .Разыскивается строковое выражение.

сравнить Необязательно .Определяет тип сравнения строк.Если сравнение равно нулю, возникает ошибка.Если сравнение опущено, параметр Option Compare определяет тип сравнения.Укажите действительный LCID (LocaleID), чтобы использовать в сравнении правила, специфичные для локали.

...