Оффтоп. Ексель

Автор ost, 28 марта 2020, 09:16

0 Пользователи и 1 гость просматривают эту тему.

ost

Случилось тут ткнуться по работе в ексель. И не могу понять, где туплю.
Может скажете почему получаю ошибку выполнения 1004 на последней строке прилагаемого кода

задача: открыть файлы с диска из конкретной папки (файлы данных)
создать из шаблона файл (целевой файл)
перенести данные и файлов данных в целевой файл.
Туплю полдня. =(

Сори за кракозябры в коментах.


Sub BooksOpen()

  øàáëîíû ãíåçäÿòñÿ çäåñü
   lTemplatePath = ThisWorkbook.Path & "\Øàáëîíû"
   lTemplateName = "Шаблон1.xltx"
   lTemplateFullName = lTemplatePath & "\" & lTemplateName
   
   'äåëàåì öåëåâîé ôàéë èç øàáëîíà,
   Set oList = Excel.Application.Workbooks.Open(lTemplateFullName)
   Set oListSheet = oList.Sheets("Журнал поступлений")
   
   'îïðåäåëÿåì ìåñòî õðàíåíèÿ è èìÿ ôàéëà öåëåâîãî ñïèñêà
   lListPath = ThisWorkbook.Path & "\Списки"
   lListName = Format(Date, "yymmdd") & "_" & Format(Time, "hhmm") & " Список поступлений"
   lListFullName = lListPath & "\" & lListName
       
   'îïðåäåëÿåì ìåñòî ïîèñêà èñõîäíûõ ôàéëîâ-èñòî÷íèêîâ äàííûõ,  èõ ìàñêó è èùåì âñå ôàéëû-èñòî÷íèêè.
   lJPostPath = ThisWorkbook.Path & "\Журнал поступлений"
   lJPostName = Dir(lJPostPath & "\" & "??????_Журнал поступлений.xlsx")
   
   
   Do While lJPostName <> ""
      lJPostFullName = lJPostPath & "\" & lJPostName
       
      Set oJPost = Excel.Application.Workbooks.Open(lJPostFullName)
       
       Rem Ñòàðò ðàáîòû ñ î÷åðåäíûì ôàéëîì
       
       'Îïðåäåëÿåì ïîñëåäíþþ çàíÿòóþ ñòðîêó â öåëåâîì ôàéëå è Æóðíàëå Ïîñòóïëåíèé.
       lListLastRow = oListSheet.Cells(Rows.Count, 2).End(xlUp).Row
       
       Set oJPostSheet = oJPost.Sheets(1)
       lJPostLastRow = oJPostSheet.Cells(Rows.Count, 2).End(xlUp).Row
       
       'äèàïàçîí-èñòî÷íèê
       Set oJPostRange = oJPostSheet.Range(Cells(2, 1), Cells(lJPostLastRow, 18))
       Set oListRange = oListSheet.Range(Cells(lListLastRow + 1, 2), Cells(lListLastRow + lJPostLastRow, 19))



При этом код ниже работает O_O



Sub ggg()
Set oFileSource = Excel.Application.Workbooks.Open("D:\Папка\Файл1.xlsx")
Set oFileSourceSheet = oFileSource.Sheets(1)
Set oFileSourceRange = oFileSourceSheet.Range(Cells(2, 1), Cells(4, 18))


Set oFileTarget = Excel.Application.Workbooks.Open("D:\Папка\Шаблоны\Шаблон1.xltx")
Set oFileTargetSheet = oFileTarget.Sheets(1)
Set oFileTargetRange = oFileTargetSheet.Range(Cells(21, 2), Cells)

oFileTargetRange.Value = oFileSourceRange.Value




ost


economist

Цитата: ost от 28 марта 2020, 09:16Сори за кракозябры в коментах.
Чтобы не было кракозябл - нужно перед Ctrl+C - копированием - переключить язык на клавиатуре.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...