Это работает сейчас! Большое спасибо, Двироны!

нь новичок в VBA, и теперь я борюсь с одним макросом, который будет фильтровать столбец по первым точным буквам (например, у меня есть столбец N - «Город», и в результате у меня должны быть все записи, например, начинается - «Ванкувер», «Ванкувер. Британская Колумбия», «Ванкувер Канада» - поэтому я хочу отсортировать этот столбец по первым буквам - ВАНКУ - чтобы быть уверенным, что я не буду пропускать какую-либо информацию.

Приведенный ниже код не работает вообще для 3 значений - возможно, я выбрал неправильный путь. Не могли бы вы сообщить - какая функция или оператор будет работать в этом случае? Все, что я нахожу - работа для 2 значений (в этом случае я могу использовать в списке «начинается с»). У меня есть 5-6 значений, и они могут различаться (я не знаю, какой формат названия города у меня будет в следующий раз).

Заранее спасибо!

Dim rng01 As Range
Set rng01 = [A1:Z5048]
    rng01.Parent.AutoFilterMode = False
    rng01.Columns(14).AutoFilter Field:=1, Criteria1:=Array("Vancou*", "Brampt*", "Halifa*"), Operator:= _
        xlFilterValues

Upd: вот адаптированный код, который не работает

Option Explicit
Sub AutoFilterWorkaround()

Dim sht As Worksheet
Dim filterarr As Variant, tofindarr As Variant
Dim lastrow As Long, i As Long, j As Long, k As Long

Set sht = ThisWorkbook.Worksheets("Sheet1")
lastrow = sht.Cells(sht.Rows.Count, "N").End(xlUp).Row

'List the parts of the words you need to find here
tofindarr = Array("Vancou", "Brampt", "Halifa")

ReDim filterarr(0 To 0)
j = 0

For k = 0 To UBound(tofindarr)

    For i = 2 To lastrow
        If InStr(sht.Cells(i, 14).Value, tofindarr(k)) > 0 Then
            filterarr(j) = sht.Cells(i, 14).Value
            j = j + 1
            ReDim Preserve filterarr(0 To j)
        End If
    Next i

Next k

'Filter on array
sht.Range("$N$1:$N$" & lastrow).AutoFilter Field:=14, Criteria1:=Array(filterarr), Operator:=xlFilterValues

End Sub

Ответы на вопрос(1)

Ваш ответ на вопрос