У меня есть следующий список:
Я хочу сделать код VBA, фильтрующий разные имена, в котором они работают, и сохраняя результат в именованном диапазоне с именем магазина, а диапазон - это имена из списка, работающего в этом магазине.
Например, именованными диапазонами будут Лондон, содержащие ячейки B2 и B7 и т. д.
ИЗМЕНИТЬ:
Я знаю, что это неправильно, но я просто не могу решить эту проблему. VBA просто не то, что я хочу, чтобы это было в данный момент... Сначала я создал новый столбец именованных диапазонов, а затем продолжил.
Sub NamedRange()
Dim arr() As Variant
arr = Sheet1.Range("D2:D4").Value
Dim i As Integer
Dim j As Integer
Dim Name As String
Dim k1 As Range, k2 As Range
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
i = 0
Do While i < 4
Name = arr(i)
For j = 1 To Lastrow
k1 = Match(arr(i), Cells(i, 1).Value, 0)
k2 = Union(k1, k2)
Next j
Range(k2).Select
Application.Goto Reference:=arr(i)
Loop
End Sub
EDIT2: потратил два часа, пытаясь понять функцию AdvancedFilter. Сделал это с помощью опции x1FilterCopy, но таким образом весь мой лист Excel будет в беспорядке. Есть ли способ фильтрации и просто сохранения отфильтрованного диапазона в переменной. Боже, VBA, почему ты сделан таким?