У меня есть этот код, который я использую для поиска диапазона, когда я нажимаю элемент в своем списке. Я никогда не зацикливался на списке и хочу знать, как я добавляю цикл, чтобы выполнять то, что мне нужно, не нажимая каждый элемент в списке. Вот код, я использую:Excel VBA цикл через список
Sub FindListValue()
Dim FirstAddress As String
Dim rSearch As Range 'range to search
Dim c As Range
With Sheets("PN-BINS")
Set rSearch = .Range("B1", .Range("B65536").End(xlUp))
End With
Dim i As Long
' loop through all items in ListBox1
For i = 0 To Me.ListBox1.ListCount - 1
' current string to search for
strFind = Me.ListBox1.List(i)
With rSearch
Set c = .Find(strFind, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then 'found it
c.Select
Me.ListBox1.AddItem strFind & " | " & c.Offset(0, -1).Value, Me.ListBox1.ListIndex + 1
Me.ListBox1.RemoveItem (Me.ListBox1.ListIndex)
'Exit Sub
Else: 'MsgBox strFind & " is not listed!" 'search failed
End If
End With
' the rest of your code logics goes here...
Next i
End Sub
Я не уверен, что я понимаю вопрос. Вы выбрали что-то из своего списка и хотите использовать это значение, чтобы найти что-то в диапазоне (что вы можете сделать либо с помощью цикла, либо с помощью метода «Найти»), поэтому, когда происходит щелчок по каждому элементу в списке войти в него? – jsheeran
Когда я нажимаю элемент в списке, я заменяю строку поисковой информацией из диапазона, который отлично работает, если я нажимаю каждый элемент. То, что я хочу сделать, заключается в том, что вам нужно просто щелкнуть элементы в списке вместе и просто выполнить поиск по каждой строке в списке. Если он найден, замените строку. Если он не найден, просто ничего не делайте. Надеюсь, у меня есть смысл. – Noob2Java
@ user3340949 попробуйте код в моем ответе ниже и посмотрите, работает ли он на вас –