Новичок в VBA, и я впервые задаю вопрос. У меня есть рабочая книга, содержащая около 50 тысяч записей. Данные состоят из ок. 2700 акций США с двухнедельным обновлением данных для просмотра цены, объема торгов и т. д. Я буду обновлять данные раз в две недели, и когда я это сделаю, я собираюсь исключить ценные бумаги, которые не соответствуют определенным критериям. При каждом обновлении может быть от 30 до 50 ценных бумаг, которые необходимо удалить, поэтому фильтрация каждой из них и удаление всех строк для этой ценной бумаги занимает много времени.
Я надеюсь, что смогу поддерживать таблицу на листе под названием «Фильтры», которую я могу вручную заполнять своими «удалениями» каждый раз, когда мне нужно удалить определенные ценные бумаги, а затем запускать макрос, который фильтрует только эти ценные бумаги и удаляет все ряды.
Вот что я пробовал до сих пор, чтобы отфильтровать данные до необходимых строк. Кажется, я не могу заставить его работать. Я получаю ошибку в жирной строке ниже.
У меня есть таблица под названием «Фильтрация», названная на листе «Фильтры» (пятый лист), а необработанные данные находятся на листе под названием «Данные» (первый лист). Любая помощь приветствуется.
Sub deleterows()
Dim Filtering As Variant
Dim ws1 As Worksheet, ws2 As Worksheet
Dim sedol As Range, rngData As Range
Set ws1 = Worksheets("Data")
Set ws2 = Worksheets("Filters")
Set rngData = ws1.Range("$D$1").CurrentRegion
**Set sedol = ws2.Range("Filtering")**
Filtering = sedol.Value
rngData.AutoFilter Field:=1, _
Criteria1:=Application.Transpose(Filtering), _
Operator:=xlFilterValues