Как импортировать всю строку (ы), содержащую текущую (сегодняшнюю) дату из файла excel, в другой файл excel автоматически без открытия с помощью VBA

Я новичок в программировании VBA. Я хочу импортировать всю строку/(ы) (примерный диапазон от столбца "А" до "ВТ"), который содержит только текущую (сегодняшнюю) дату (пример, дата в столбце "В5") из исходного листа excel в текущий (backup excel) excel автоматически, не открывая исходный excel.So, что я могу регулярно копировать свои данные в конце дня из файла резервной копии excel. Фактически, исходный лист обновляется регулярно, и через день у меня есть 5-10 новых строк с той же датой (текущая/сегодняшняя), и поэтому я хочу скопировать все новые данные для резервного копирования листа excel в строках рядом с резервное копирование предыдущего дня в резервном файле excel каждый день. Спасибо. Ниже код VBA работает, но он копирует только интересующий столбец, но мне нужны все строки, которые нужно скопировать. Есть ли у вас какая-нибудь идея изменить ниже код VBA, чтобы он также скопировал целые строки?

Option Explicit

Private Sub Workbook_Open() Вызов ReadDataFromCloseFile End Sub

Sub ReadDataFromCloseFile() При ошибке GoTo ErrHandler Application.ScreenUpdating = False

Dim src As Workbook

' OPEN THE SOURCE EXCEL WORKBOOK IN "READ ONLY MODE".
Set src = Workbooks.Open("C:\Users\HAMENDRA\Desktop\Equation\Otarry.xlsm", True, True)

' GET THE TOTAL ROWS FROM THE SOURCE WORKBOOK.
Dim iTotalRows As Integer
iTotalRows = src.Worksheets("Records").Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row).Rows.Count

' COPY DATA FROM SOURCE (CLOSE WORKGROUP) TO THE DESTINATION WORKBOOK.
Dim iCnt As Integer         ' COUNTER.
For iCnt = 1 To iTotalRows
    Worksheets("Sheet1").Range("B" & iCnt).Formula = src.Worksheets("Records").Range("B" & iCnt).Formula
Next iCnt

' CLOSE THE SOURCE FILE.
src.Close False             ' FALSE - DON'T SAVE THE SOURCE FILE.
Set src = Nothing

ErrHandler: Application.EnableEvents = True Application.ScreenUpdating = True End Sub

0
источник поделиться
1 ответ

Заменить:

Worksheets("Sheet1").Range("B" & iCnt).Formula = src.Worksheets("Records").Range("B" & iCnt).Formula

С:

Worksheets("Sheet1").Range("B" & iCnt).EntireRow.Formula = src.Worksheets("Records").Range("B" & iCnt).EntireRow.Formula

Но вы также должны отредактировать заголовок этого сообщения. Как сказал предыдущий комментатор, вы открываете книгу. Я бы предложил что-то вроде "Как скопировать всю строку с помощью VBA". Конечно, если бы у вас была просто googled "Как скопировать всю строку VBA", вы, вероятно, нашли бы ответ. :-)

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос