8.х Excel - макрос

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Forsminor, 14 дек 2012.

  1. TopicStarter Overlay
    Forsminor
    Offline

    Forsminor

    Регистрация:
    12 дек 2012
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Есть кусок макроса
    Код:
    While x <= UBound(FilesToOpen)
    Workbooks.Open Filename:=FilesToOpen(x)
    Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    x = x + 1
    Wend
    он выполняет перебор выбранных файлов и переносит на листы в один файл.
    Подскажите как сделать так чтобы он их переносил на один лист и для файлов начиная со второго первую строку не переносил?
    Заранее спасибо!
  2. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    не совсем понятно чего с файлами надо делать...
  3. TopicStarter Overlay
    Forsminor
    Offline

    Forsminor

    Регистрация:
    12 дек 2012
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Move - это перетаскивание, тут описано что листы с других книг перетаскиваются в одну книгу (другую)

    сам код вот такой

    Код:
    Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
    FilesToOpen = Application.GetOpenFilename _
    (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
    MultiSelect:=True, Title:="Files to Merge")
    If TypeName(FilesToOpen) = "Boolean" Then
    MsgBox "Не выбрано ни одного файла!"
    GoTo ExitHandler
    End If
    x = 1
    While x <= UBound(FilesToOpen)
    Workbooks.Open Filename:=FilesToOpen(x)
    Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    x = x + 1
    Wend
    ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
    ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
    End Sub
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    это понятно, VB я более менее знаю, мне не понятно вот это
  5. TopicStarter Overlay
    Forsminor
    Offline

    Forsminor

    Регистрация:
    12 дек 2012
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    как переделать код, чтобы он не добавлял листы в книгу, а копировал содержимое (заполненые области) и вставлял их в один лист, при этом он должен не копировать 1-ую строчку после первого файла (так как там шапка)
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    так сходу код не набросаю, но думаю поискав на форуме темы про работу с екселем вы найдете необходимые конструкции, а алгоритм наверное такой:
    По очереди открывать файлы и копировать диапазон ячеек (Range если не ошибаюсь) и вставлять его в нужный файл. Указывая диапазон вы как раз исключите первую строку

Поделиться этой страницей