powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите решить макрос на всех листах Книги
25 сообщений из 36, страница 1 из 2
Помогите решить макрос на всех листах Книги
    #39598408
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, нужен макрос для печати страниц книги. Задача такая, в книге 100 листов , на каждом по 5 страниц. На каждой странице есть ячейка, значение которой нужно проверить, и если она не равна "0", то печатать страницу. На каждом листе набор ячеек для проверки один и тот же (J22; X22; Al22; AZ22; BN22) Нужно печатать первый лист, и все страницы на всех последующих Листах со значением не равным "0". Сам Макрос для одного листа у меня выглядит так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub макрос()
    If ActiveSheet.Range("J22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
    If ActiveSheet.Range("X22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1, Collate:=True
    If ActiveSheet.Range("AL22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=3, To:=3, Copies:=1, Collate:=True
    If ActiveSheet.Range("AZ22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=4, To:=4, Copies:=1, Collate:=True
    If ActiveSheet.Range("BN22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=5, To:=5, Copies:=1, Collate:=True
End Sub

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598428
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перепробовал кучу вариантов предлагаемых на различных форумах, и ни один не работает...
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598454
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос-то в чем, как перебрать листы или еще в чем-то?
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598459
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 
Sub Macros1()
If ActiveSheet.Range("J22") = "0" Then _
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
If ActiveSheet.Range("X22") <> "0" Then _
ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1, Collate:=True
If ActiveSheet.Range("AL22") <> "0" Then _
ActiveWindow.SelectedSheets.PrintOut From:=3, To:=3, Copies:=1, Collate:=True
If ActiveSheet.Range("AZ22") <> "0" Then _
ActiveWindow.SelectedSheets.PrintOut From:=4, To:=4, Copies:=1, Collate:=True
If ActiveSheet.Range("BN22") <> "0" Then _
ActiveWindow.SelectedSheets.PrintOut From:=5, To:=5, Copies:=1, Collate:=True
End Sub
Sub MacroCaller()
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Activate
Macros1
Next Sheet
End Sub




Вот такой вариант, например, печатает первый Лист и Второй, потом повисает на ошибке....
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598461
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я толком не знаю какой Вопрос, я знаю Задачу: нужно запуская макрос пускать в печать все не нулевые Страницы всех Листов.
Может как перебирать, или как запустить на всех, ... или ещё как, Это мой первый Макрос, поэтому так ..
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598467
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorich_83повисает на ошибке....текст ошибки - великая тайна?
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598478
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

1004

Method 'PrintOut' of object 'Sheets' failed
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39598618
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте параметр Background:=False для .PrintOut
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599017
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProПопробуйте параметр Background:=False для .PrintOut

Попробовал,заменил, всё равно печатает первый лист, второй, потом зависает с той же ошибкой;
выделяет строчку

Код: sql
1.
 ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1, Collate:=True 



желтым
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599020
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
 ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1, Collate:=False 



в случае с "False", точно то же самое :(
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599033
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorich_83Попробовал,заменилА теперь попробуйте внимательно прочитать, что я написал
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599060
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Возможно, я просто не понимаю что Вы предлагаете, я в первый раз сталкиваюсь с Макросом и с VBA тем более...
Предложите, пожалуйста, примером, если это возможно.
Заранее Благодарен !
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599104
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В конце строк с PrintOut-ом добавить
Код: vbnet
1.
, Background:=False
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599130
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub Macros1()
    If ActiveSheet.Range("J22") = "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True, Background:=False
    If ActiveSheet.Range("X22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1, Collate:=True, Background:=False
    If ActiveSheet.Range("AL22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=3, To:=3, Copies:=1, Collate:=True, Background:=False
    If ActiveSheet.Range("AZ22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=4, To:=4, Copies:=1, Collate:=True, Background:=False
    If ActiveSheet.Range("BN22") <> "0" Then _
        ActiveWindow.SelectedSheets.PrintOut From:=5, To:=5, Copies:=1, Collate:=True, Background:=False
End Sub
Sub MacroCaller()
    For Each Sheet In ActiveWorkbook.Sheets
    Sheet.Activate
    Macros1
    Next Sheet
    End Sub




пишет ошибку

Compile error:
Named argument not found
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599182
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, блин, это только в Ворд-е

попробуйте так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub Macros1(Sheet As Worksheet)

If Sheet.Range("J22") = "0" Then _
  Sheet.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
If Sheet.Range("X22") <> "0" Then _
  Sheet.PrintOut From:=2, To:=2, Copies:=1, Collate:=True
If Sheet.Range("AL22") <> "0" Then _
  Sheet.PrintOut From:=3, To:=3, Copies:=1, Collate:=True
If Sheet.Range("AZ22") <> "0" Then _
  Sheet.PrintOut From:=4, To:=4, Copies:=1, Collate:=True
If Sheet.Range("BN22") <> "0" Then _
  Sheet.PrintOut From:=5, To:=5, Copies:=1, Collate:=True

End Sub

Sub MacroCaller()

For Each Sheet In ActiveWorkbook.Sheets
  Macros1 Sheet
Next Sheet

End Sub
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599219
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Compile error:
ByRef argument type mismatch
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599228
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub Macros1(sh As Worksheet)

If sh.Range("J22") = "0" Then _
  sh.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
If sh.Range("X22") <> "0" Then _
  sh.PrintOut From:=2, To:=2, Copies:=1, Collate:=True
If sh.Range("AL22") <> "0" Then _
  sh.PrintOut From:=3, To:=3, Copies:=1, Collate:=True
If sh.Range("AZ22") <> "0" Then _
  sh.PrintOut From:=4, To:=4, Copies:=1, Collate:=True
If sh.Range("BN22") <> "0" Then _
  sh.PrintOut From:=5, To:=5, Copies:=1, Collate:=True

End Sub

Sub MacroCaller()

For Each sh In Worksheets
  Macros1 sh 
Next sh 

End Sub
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599283
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

То же самое,

Compile error:
ByRef argument type mismatch

теперь выделяет жёлтым "sh" .....
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599286
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub MacroCaller()

Dim sh As Worksheet 
For Each sh In Worksheets
  Macros1 sh 
Next sh 

End Sub
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599300
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599301
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599312
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте МОЙ код, а не свои старые куски
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599328
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Прошу прощения, запутался....
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599330
egorich_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите решить макрос на всех листах Книги
    #39599334
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на этом листе точно есть вторая страница, которую пытаетесь напечатать?
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите решить макрос на всех листах Книги
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]