Добрый день, друзья
Во вложенном файле Запрос - mail реализован макрос который выполняет создание и отправку писем через Outlook.
После запуска макроса формируются письма и таблицы, которые вставляются в тело письма.
После этого макрос делает запись текущей даты в таблицу БАЗА ЗАЯВОК 2018 в столбец AI напротив строки которая содержит код (№ Заявки).
То есть в таблице Запрос - mail есть сформированная таблица где каждая строка имеет код (№ Заявки),
макрос сравнивает код (№ Заявки) между таблицами "Запрос - mail" и "БАЗА ЗАЯВОК 2018" находит совпадение и делает запись в таблицу "БАЗА ЗАЯВОК 2018" в столбец AI.
Запись даты в таблицу "БАЗА ЗАЯВОК 2018" реализована в следующем коде:
Код |
---|
With iBook.Worksheets("База") j = .Range("b" & .Rows.Count).End(xlUp).Row
arr(0) = .Range(.[a1], .Range("ai1" & j)).Formula
For i = 1 To UBound(arr(0))
itxt = arr(0)(i, 2)
If objDic.Exists(itxt) Then arr(0)(i, UBound(arr(0), 2)) = objDic.Item(itxt)
Next i
.Range("a1").Resize(UBound(arr(0)), UBound(arr(0), 2)).Formula = arr(0)
iBook.Save
End With |
Макрос работает следующем образом:
Переносит все данные из таблицы "БАЗА ЗАЯВОК 2018" в массив присваивает даты и выгружает эти данные обратно.
Это очень ресурсозатратный метод, когда в таблице "БАЗА ЗАЯВОК 2018" больше 10 000 строк. Кроме этого по не понятной причини растёт размер файла, буквально удваивается.
Подскажите пожалуйста как изменить код, чтобы запись даты выполнялась без загрузки всех данных из таблицы "БАЗА ЗАЯВОК 2018" в массив, а выполнялся поиск нужной строки в "БАЗА ЗАЯВОК 2018" с последующей записью даты согласно кода (№ Заявки) заданного в таблице "Запрос - mail".
или
Загружались в массив из таблицы "БАЗА ЗАЯВОК 2018" только те строки которые соответствуют коду (№ Заявки) заданному в таблице "Запрос - mail"