Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Массовая печать из папки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Массовая печать из папки (Макросы/Sub)
Массовая печать из папки
televnoy Дата: Пятница, 02.03.2018, 08:06 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 119
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые форумчане.
Нужно напечатать оч. много файлов, и их определенное кол-во.
Нашел макрос в сети на данное действие. Подогнал под свои нужды, но не знаю как переделать его чтобы он печатал просто первый лист, а не по названию листа.
Примерно теоретически понимаю что надо Shits1, но.... помогите.
[vba]
Код

Sub Печать_заданных_листов_файлов_Excel_из_папки()
    Dim MyPath$, MyFileName$, ShName, i%
    MyPath = "C:\Users\Televnoy\Desktop\ewtetew\"  ' Папка, из которой печатаем
    ShName = Array("Лист1", "Лист100") ' Набор имен листов к распечатке
    MyFileName = Dir(MyPath & "*.xlsx*")
    On Error Resume Next  ' Если в файле нет заданного листа, то игнорируем и продолжаем работать
    Do Until MyFileName = ""
        If Left$(MyFileName, 2) <> "~$" Then ' Исключаем временные файлы Excel
            Workbooks.Open Filename:=MyPath & MyFileName, UpdateLinks:=0, ReadOnly:=True
            For i = 0 To UBound(ShName)
                ActiveWorkbook.Sheets(ShName(i)).PrintOut , Copies:=5
            Next i
            ActiveWorkbook.Close 0
        End If
        MyFileName = Dir
    Loop
End Sub
[/vba]


О-па! 0_o
 
Ответить
СообщениеДоброго времени суток, уважаемые форумчане.
Нужно напечатать оч. много файлов, и их определенное кол-во.
Нашел макрос в сети на данное действие. Подогнал под свои нужды, но не знаю как переделать его чтобы он печатал просто первый лист, а не по названию листа.
Примерно теоретически понимаю что надо Shits1, но.... помогите.
[vba]
Код

Sub Печать_заданных_листов_файлов_Excel_из_папки()
    Dim MyPath$, MyFileName$, ShName, i%
    MyPath = "C:\Users\Televnoy\Desktop\ewtetew\"  ' Папка, из которой печатаем
    ShName = Array("Лист1", "Лист100") ' Набор имен листов к распечатке
    MyFileName = Dir(MyPath & "*.xlsx*")
    On Error Resume Next  ' Если в файле нет заданного листа, то игнорируем и продолжаем работать
    Do Until MyFileName = ""
        If Left$(MyFileName, 2) <> "~$" Then ' Исключаем временные файлы Excel
            Workbooks.Open Filename:=MyPath & MyFileName, UpdateLinks:=0, ReadOnly:=True
            For i = 0 To UBound(ShName)
                ActiveWorkbook.Sheets(ShName(i)).PrintOut , Copies:=5
            Next i
            ActiveWorkbook.Close 0
        End If
        MyFileName = Dir
    Loop
End Sub
[/vba]

Автор - televnoy
Дата добавления - 02.03.2018 в 08:06
Roman777 Дата: Пятница, 02.03.2018, 08:17 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 912
Репутация: 116 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
televnoy,
Попробуйте так:
[vba]
Код
Sub Печать_заданных_листов_файлов_Excel_из_папки()
    Dim MyPath$, MyFileName$
    MyPath = "C:\Users\Televnoy\Desktop\ewtetew\"  ' Папка, из которой печатаем
    ShIndex& = 1 ' Номер листа
    MyFileName = Dir(MyPath & "*.xlsx*")
    On Error Resume Next  ' Если в файле нет заданного листа, то игнорируем и продолжаем работать
    Do Until MyFileName = ""
        If Left$(MyFileName, 2) <> "~$" Then ' Исключаем временные файлы Excel
            Workbooks.Open Filename:=MyPath & MyFileName, UpdateLinks:=0, ReadOnly:=True
            ActiveWorkbook.Sheets(ShIndex).PrintOut , Copies:=5
            ActiveWorkbook.Close 0
        End If
        MyFileName = Dir
    Loop
End Sub
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Пятница, 02.03.2018, 09:11
 
Ответить
Сообщениеtelevnoy,
Попробуйте так:
[vba]
Код
Sub Печать_заданных_листов_файлов_Excel_из_папки()
    Dim MyPath$, MyFileName$
    MyPath = "C:\Users\Televnoy\Desktop\ewtetew\"  ' Папка, из которой печатаем
    ShIndex& = 1 ' Номер листа
    MyFileName = Dir(MyPath & "*.xlsx*")
    On Error Resume Next  ' Если в файле нет заданного листа, то игнорируем и продолжаем работать
    Do Until MyFileName = ""
        If Left$(MyFileName, 2) <> "~$" Then ' Исключаем временные файлы Excel
            Workbooks.Open Filename:=MyPath & MyFileName, UpdateLinks:=0, ReadOnly:=True
            ActiveWorkbook.Sheets(ShIndex).PrintOut , Copies:=5
            ActiveWorkbook.Close 0
        End If
        MyFileName = Dir
    Loop
End Sub
[/vba]

Автор - Roman777
Дата добавления - 02.03.2018 в 08:17
televnoy Дата: Пятница, 02.03.2018, 08:46 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 119
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Roman777, ошибка :(

Compile error:
Expected: =

И выделяет красным
1 - 3 - 5 - 7 - 8 строку


О-па! 0_o
 
Ответить
СообщениеRoman777, ошибка :(

Compile error:
Expected: =

И выделяет красным
1 - 3 - 5 - 7 - 8 строку

Автор - televnoy
Дата добавления - 02.03.2018 в 08:46
televnoy Дата: Пятница, 02.03.2018, 08:57 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 119
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Roman777, Переписал все точь в точь действий не происходит :(


О-па! 0_o
 
Ответить
СообщениеRoman777, Переписал все точь в точь действий не происходит :(

Автор - televnoy
Дата добавления - 02.03.2018 в 08:57
Karataev Дата: Пятница, 02.03.2018, 08:59 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1268
Репутация: 489 ±
Замечаний: 0% ±

Excel


Киви-кошелек: 9166309108
Яндекс-деньги: 410014131888288
 
Ответить
Сообщение

Автор - Karataev
Дата добавления - 02.03.2018 в 08:59
Roman777 Дата: Пятница, 02.03.2018, 09:07 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 912
Репутация: 116 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
И выделяет красным
1 - 3 - 5 - 7 - 8 строку

У меня обычно красным ничего не выделяет в окне ВБА экселя, кроме стоповых точек))).
А путь папки тот?


Много чего не знаю!!!!
 
Ответить
Сообщение
И выделяет красным
1 - 3 - 5 - 7 - 8 строку

У меня обычно красным ничего не выделяет в окне ВБА экселя, кроме стоповых точек))).
А путь папки тот?

Автор - Roman777
Дата добавления - 02.03.2018 в 09:07
televnoy Дата: Пятница, 02.03.2018, 09:21 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 119
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Karataev, Спасибо за решение :)
Roman777, да - путь папки был другой, но я поменял его. Я же говорил копировал по новой - красное изчезло - через тестовый редактор, видимо атрибуты невидимые какие нибудь были.
Я же ниже написал.Он открывал файл, и закрывал, печати не происходило.
Karataev - помог с решением. Roman777 - вам тоже огромное спасибо за помощь.


О-па! 0_o
 
Ответить
СообщениеKarataev, Спасибо за решение :)
Roman777, да - путь папки был другой, но я поменял его. Я же говорил копировал по новой - красное изчезло - через тестовый редактор, видимо атрибуты невидимые какие нибудь были.
Я же ниже написал.Он открывал файл, и закрывал, печати не происходило.
Karataev - помог с решением. Roman777 - вам тоже огромное спасибо за помощь.

Автор - televnoy
Дата добавления - 02.03.2018 в 09:21
Roman777 Дата: Пятница, 02.03.2018, 09:27 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 912
Репутация: 116 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
televnoy, Очень странно, у меня код работает)
ну конечно, конкретное присваивание переменной ссылки на открытый файл понадёжней будет
Цитата
[vba]
Код
Set bk = Workbooks.Open(Filename:=MyPath & MyFileName, UpdateLinks:=False, ReadOnly:=True)
            bk.Worksheets(1).PrintOut Copies:=5
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Пятница, 02.03.2018, 09:29
 
Ответить
Сообщениеtelevnoy, Очень странно, у меня код работает)
ну конечно, конкретное присваивание переменной ссылки на открытый файл понадёжней будет
Цитата
[vba]
Код
Set bk = Workbooks.Open(Filename:=MyPath & MyFileName, UpdateLinks:=False, ReadOnly:=True)
            bk.Worksheets(1).PrintOut Copies:=5
[/vba]

Автор - Roman777
Дата добавления - 02.03.2018 в 09:27
zingeroud Дата: Четверг, 26.07.2018, 15:07 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Народ подскажите что в код дописать что бы печатал не только первый лист, нужен первый второй и третий
пробовал эти строки, все равно печатает только первый лист. Эксель русский 2016
ShIndex& = 1 ' Номер листа
ShName = Array("Лист1", "Лист2", "Лист3") ' Набор имен листов к распечатке


Сообщение отредактировал zingeroud - Четверг, 26.07.2018, 17:10
 
Ответить
СообщениеНарод подскажите что в код дописать что бы печатал не только первый лист, нужен первый второй и третий
пробовал эти строки, все равно печатает только первый лист. Эксель русский 2016
ShIndex& = 1 ' Номер листа
ShName = Array("Лист1", "Лист2", "Лист3") ' Набор имен листов к распечатке

Автор - zingeroud
Дата добавления - 26.07.2018 в 15:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Массовая печать из папки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!