Я пытаюсь объединить ежедневный отчет с одним основным документом.Раньше я использовал функции Excel для этого.Но размер файла стал огромным.Так что в конце концов я подумал, что я могу использовать VBA, чтобы исключить огромное количество функций на листах, а также уменьшить размер файла и время вычислений.
В основном у меня есть номера основных строк в качестве базы данных на Листе 1 (основной документ).С Листа 2 мне нужно брать ежедневные объемы работ, выполненных для номеров строк, указанных на Листе 1.
Например, в Листе 1 ячейка «M3» представляет номер первой строки (Строка-01).В ячейке "X3" будет количество работы (10 соединений), которое поступает из диапазона листа 2 "O: O".Это будет повторяться в случайное время в зависимости от ежедневной производительности.Таким образом, у меня были бы данные от диапазона "O3" до "O1000" (даже больше).
Sub DailyProgress()
Dim i As Long
Sheets(1).Activate
Range("X3:X" & Range("M" & Rows.Count).End(xlUp).row).Formula = _
"=IFERROR(vlookup(M3,Sheet2!D:O,12,0),Text(,))"
i = 3
'Because my first cell is on row 3
Do Until IsEmpty(Cells(i, 12))
Cells(i, 24).Copy
Cells(i, 24).PasteSpecial xlPasteValues
i = i + 1
Loop
End Sub
Я написал код для создания vlookup, копирования и вставки в качестве значения.Но этот блок недостаточно гладкий.Кстати, мне нужно скопировать данные в ячейки "Y3" и "Z3" из Sheet2.Так что в следующий раз это займет гораздо больше времени.