Мне нужна помощь с копированием данных из одного Excel, который представляет собой ежедневный отчет, в ежемесячный отчет. Есть ли возможность, если вы вставите дату в одну ячейку, чтобы распознать дату и вставить данные в нужный диапазон для правильной даты?
Пока что я сделал макрос для копирования данных за одну дату (скажем, 1-го числа месяца), и я не могу придумать решение, которое не включает макрос 31 кнопки, относящийся к каждый день месяца.
Sub Insert_Daily_Report()
Dim OpenBook As Workbook
Dim Report As Workbook
Dim FileToOpen As Variant
Set Report = ThisWorkbook
FileToOpen = Application.GetOpenFilename(Title:="Insert the daily report", FileFilter:="Excel Files
(*.xlsm*), *xlsm*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets("Daily_Sheet1").Range("E4:AB4").Copy
Set Report = ActiveWorkbook
ThisWorkbook.Worksheets("Monthly_Sheet1").Activate
ActiveSheet.Range("E4").Select
ActiveSheet.PasteSpecial Link:=True
Set OpenBook = ActiveWorkbook
OpenBook.Sheets("Daily_Sheet1").Range("E10:AB10").Copy
Set Report = ActiveWorkbook
ThisWorkbook.Worksheets("Monthly_Sheet1").Activate
ActiveSheet.Range("E39").Select
ActiveSheet.PasteSpecial Link:=True
OpenBook.Close False
End If
End Sub
Кроме того, я думаю, что marco плохо переключается между двумя рабочими книгами - вставленные данные не являются правильными данными (я проверил диапазоны, они в порядке)