Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

31 Июль 2021, 18:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Оффтоп. Ексель  (Прочитано 3880 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ost
Форумчанин
***
Offline Offline

Сообщений: 202


« Стартовое сообщение: 28 Март 2020, 09:16 »

Случилось тут ткнуться по работе в ексель. И не могу понять, где туплю.
Может скажете почему получаю ошибку выполнения 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



« Последнее редактирование: 28 Март 2020, 09:23 от ost » Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 202


« Ответ #1: 28 Март 2020, 09:57 »

Разобрался. =)
Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 514


« Ответ #2: 29 Март 2020, 12:05 »

Сори за кракозябры в коментах.
Чтобы не было кракозябл - нужно перед Ctrl+C - копированием - переключить язык на клавиатуре.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!