Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2015, 13:20   #11
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

т.е. со старта предполагается, что в Екселе открыто 18 файлов. занятно.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.09.2015, 13:34   #12
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
т.е. со старта предполагается, что в Екселе открыто 18 файлов. занятно.
Ну да, если надо из 18 файлов перенести данные в один, как же без их открытия?
Ogeris вне форума Ответить с цитированием
Старый 09.09.2015, 13:35   #13
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Значит со старта открыто минимум 19!
Перенести без открытия конечно сложно... Но можно открывать по одному последовательно.
А вот скопировать можно без открытия - можно использовать формулы, или в коде ExecuteExcel4Macro(путь)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 09.09.2015 в 13:40.
Hugo121 вне форума Ответить с цитированием
Старый 09.09.2015, 13:39   #14
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Код:
массив=array("Кб59.xls", "ГФ6.xls", "Л60.xls") 'и т.д.
Примерно так?
Код:
Sub Paste()
  Dim i As Long
  On Error Resume Next
  For i = LBound(Array("Кб59.xls", "КП54.xls", "Л60.xls", "Кар21.xls", "Л65.xls", "Р13.xls", "Л60_2.xls", "П52.xls", "У9.xls", "ГФ6.xls", "Крп41.xls", "Гзв12.xls", "Лыс.xls", "ШК112.xls", "М65.xls", "1905.xls", "Кб105.xls", "Пис29.xls")) To UBound(Array("Кб59.xls", "КП54.xls", "Л60.xls", "Кар21.xls", "Л65.xls", "Р13.xls", "Л60_2.xls", "П52.xls", "У9.xls", "ГФ6.xls", "Крп41.xls", "Гзв12.xls", "Лыс.xls", "ШК112.xls", "М65.xls", "1905.xls", "Кб105.xls", "Пис29.xls"))
    Windows(Кб59.xls).Activate
    If Err Then
      Err.Clear
    Else
      With Workbooks("Отчет.xls")
        Sheets(1).Range("A1:AA" & Cells(Rows.Count, 1).End(xlUp).Row).Copy _
        IIf(.Cells(.Rows.Count, 1).End(xlUp).Row = 1, .Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0))
        .Columns(1).UnMerge
      End With
    End If
  Next
  On Error GoTo 0
End Sub

Последний раз редактировалось Ogeris; 09.09.2015 в 13:42.
Ogeris вне форума Ответить с цитированием
Старый 09.09.2015, 13:41   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Нет, не так
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.09.2015, 13:41   #16
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и самое интересное - макрос допускает отсутствие открытого файла, что автоматически означает данные из него ни куда не попадают, итоговый файл корявый, причем даже отчета нет какой файл не обработан...

та еще автоматизация работы (с непредсказуемым результатом)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.09.2015, 13:44   #17
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
и самое интересное - макрос допускает отсутствие открытого файла, что автоматически означает данные из него ни куда не попадают, итоговый файл корявый, причем даже отчета нет какой файл не обработан...

та еще автоматизация работы (с непредсказуемым результатом)
Проверка полноты занесения данных у меня запланирована следующим шагом в настройке этой процедуры...
Ogeris вне форума Ответить с цитированием
Старый 09.09.2015, 13:52   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Так нужно сразу делать - сперва проверяем все ли файлы открыты, если не все - сигнализируем и выходим.
Когда юзер открыл все -тогда работаем.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.09.2015, 15:13   #19
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Так нужно сразу делать - сперва проверяем все ли файлы открыты, если не все - сигнализируем и выходим.
Когда юзер открыл все -тогда работаем.
Это не обязательное условие, чтобы были открыты все 18. Некоторых может не быть, т.к. не было заказов. Проверка будет на следующем этапе, когда данные отчетов сверятся с полным списком заказов, и тогда будет понятно, кто отчет не предоставил.
Ogeris вне форума Ответить с цитированием
Старый 09.09.2015, 15:20   #20
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
тогда будет понятно, кто отчет не предоставил
не факт!
не обязательно не предоставил, а может оператор забыл открыть файл (пропустил)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не показывать сообщение об ошибке, при подключении. Denutrror Работа с сетью в Delphi 3 09.07.2011 15:10
Помигать прямоугольником вокруг компонента при ошибке. Almaas Помощь студентам 1 15.12.2010 09:38
Сообщение об ошибке при вычислении длины строки vedro-compota Общие вопросы Delphi 24 17.05.2010 16:23
Indy, выход при ошибке подключения к прокси ArtInt Работа с сетью в Delphi 3 11.02.2010 16:15
Закрыть программу, при ошибке Dr.Badnezz Общие вопросы Delphi 7 16.01.2009 00:32