Добрый вечер!
Подскажите, пожалуйста, правильно ли я написал макрос для ежедневного отчета, чтобы из файла ххх.htm копировалась информация и вставлялась в лист 2057_0313 файла 2057_0313.xlsx, где
Код |
---|
Workbooks.Open Filename:="C:\temp\2057_0313.xlsx", UpdateLinks:=3
Workbooks("2057_0313.xlsx").Sheets("2057_0313").Range("A4").Select
Workbooks("2057_0313.xlsx").Sheets("2057_0313").Range("A4:D4", Range("A4:D4").End(xlDown)).Clear
Workbooks.Open Filename:="C:\temp\0313.htm"
Workbooks("0313.htm").Sheets("0313").Range("B4:E4", Range("B4:E4").End(xlDown)).Copy _
Workbooks("2057_0313.xlsx").Sheets("2057").Range("A4")
Workbooks("2057_0313.xlsx").RefreshAll
Workbooks("2057_0313.xlsx").Save
Workbooks("2057_0313.htm").Close |
2057 - номер отчета
0313 - месяц 03, год 13
Может эти данные можно объявить, как переменные?
строка
Workbooks("2057_0313.xlsx" ;) .Sheets("2057_0313" ;) .Range("A4 :D 4", Range("A4 :D 4" ;) .End(xlDown)).Clear
при тестировании у меня работала неправильно, когда курсор находился где-либо ниже ячейки A4, пришлось дописать строку
Workbooks("2057_0313.xlsx" ;) .Sheets("2057_0313" ;) .Range("A4" ;) .Select
тогда все ок, данные с листа удаляются все.
Информация в файл 2057_0313.htm добавляется каждый день, поэтому строк с каждым днем все больше и больше. С начала следующего месяца начинай с нуля (1, 2, 3 строки и т.д.) поэтому важно перед копированием удалить предыдущую информацию.