Страницы: 1
RSS
Макрос - распечатать определенные страницы
 
Помогите, пожалуйста, я в макросах не шарю.
то что загуглила не работает, и через запись макроса - тоже, т.к. нужно, чтобы макрос работал в гугл-таблицах

а требуется от него очень простое:
отправить на печать (т.е. по сути сохранить в pdf) страницы Print1, Print2, Print3 и Print4
никаких дополнительных действий не надо

заранее спасибо
 
Доброе утро! Кажется, эта статья Вам подходит)
 
Настя_Nastya, спасибо, я не разбираюсь в скриптах, но кажется это путь еще большего усложнения того, что я хочу сделать... в общем как оптимизировать эту штуку я не знаю, а по сути тогда получается руками нажать на каждой выбранной странице ctrl+P и сохранить - это куда быстрее
 
Цитата
snatg написал:
нужно, чтобы макрос работал в гугл-таблицах
А у нас форум по EXCEL.
 
Юрий М, я думала макросы, если их правильно написать будут и там и там работать, может это и не так, не знаю
 
Не будут. Разные языки программирования.
 
vikttur, ясно, спасибо
 
snatg,
ну давайте через эксель попечатаем гуглтаблицы. Вроде все элементарно:
-октрываем экселем
-печатаемся
-закрываем

К гуглтаблице должен быть открыт доступ по ссылке на чтение
При полном адресе страницы (в моем коде) типа https://docs.google.com/spreadsheets/d/1ODHiGSsKNs0jhiv9WClPhBH-lPbYYJI36CQWc7sKM1g/edit?usp=sharing
берем в код до /edit, вместо которого будет /export?format=xlsx"
Код
Sub gglsht()
Workbooks.Open Filename:="https://docs.google.com/spreadsheets/d/1ODHiGSsKNs0jhiv9WClPhBH-lPbYYJI36CQWc7sKM1g/export?format=xlsx"
Sheets("Print1").PrintOut
Sheets("Print2").PrintOut
Sheets("Print3").PrintOut
Sheets("Print4").PrintOut
ActiveWorkbook.Close False
End Sub
Задание пойдет в печать на принтер по умолчанию, или последний выбранный в текущей сессии экселя
Если нужен выбор принтера, в т.ч. для печати в ПДВ, то строка для печати первого листа (остальные не трогаем) будет выглядеть так:
Код
Sheets("Print1").PrintOut ActivePrinter:="название вашего принтера"
Изменено: andylu - 27.07.2021 09:19:18
 
andylu, спасибо, но ничего не выходит(
у меня эксель не может открыть файл, но думаю, даже если бы смог, то все равно бы ничего не вышло, т.к. я уже скачивала этот файл, в нем используются формулы, которых нет в моем экселе и он не видит данные, а только таблицы с #ИМЯ
 
snatg, стало интересно)
Не открывается с вашей ссылкой на вашу гуглтаблицц, или и в моем файле с моим Гуглом?
Если мой не открывается- то причина в ваших настройках безопасности экселя. Если уже с вашей ссылкой - то какой матюк? доступ не забыли открыть на чтение по ссылке?

По поводу совместимости формул - доберусь до своего компа гляну, поищу, возможно ли с гуглтаблиц сохранять данные значениями...Не уверен что есть такое.
Изменено: andylu - 28.07.2021 08:10:55
 
Решение проблемы #ИМЯ  "в лоб", не идеальное:
-отключаем пересчеты
-тянем файл с гуглдиска
-печатаемся
-закрываемся
-включаем пересчет
Код
Sub gglsht()
Application.Calculation = xlManual
Workbooks.Open Filename:="https://docs.google.com/spreadsheets/d/1ODHiGSsKNs0jhiv9WClPhBH-lPbYYJI36CQWc7sKM1g/export?format=xlsx"
Sheets("Print1").PrintOut 'ActivePrinter:="имя принтера для вывода в пдф"
Sheets("Print2").PrintOut
Sheets("Print3").PrintOut
Sheets("Print4").PrintOut
ActiveWorkbook.Close False
Application.Calculation = xlAutomatic
End Sub
Проблема совместимости функций отпадает (в исходном гуглфайле для теста использована =ISDATE() в ячейках В2, В3

Решение не идеальное, т.к. как минимум найдена проблема с массивами (в гуглфайле =ARRAYFORMULA(Print1!A:A) в ячейке С2
- без пересчета в экселе теряем текстовые значения
- плюс на печать летит весь диапазон масива (равный количеству строк в гугле)
=можно естественно указать точный диапазон в исходном гугле, или выводить с макроса на печать страницы с листа с_по_ (PrintOut From:=1, To:=х) но... Решение не идеальное с любой стороны.

Если у вас в гуглтаблице нет массивов - то решить проблему открытия файла у вас и можно пробовать печататься с экселя.
PS В обновленном файле с макросом сейчас закоментированно все кроме отключить пересчет - открыть файл
Изменено: andylu - 29.07.2021 07:49:06
 
Цитата
andylu написал:
Не уверен что есть такое.
Сдаюсь, я не нашел универсального, совместимого решения
 
Цитата
andylu написал:
Не открывается с вашей ссылкой на вашу гуглтаблицц, или и в моем файле с моим Гуглом?
ни тот ни другой
в своем дала права доступа и даже как редактор - ничего
и ваш не открывается
порылась в своих настройках безопасности, ничего не поменялось, даже не знаю, что это выводит сообщение не удалось открыть файл по адресу и потом ран тайм эррор 1004
ну я и раньше видела, что у меня эксель почти ничего не хочет тянуть из интернета, очень редко когда способен отрыть какую-то страницу, и даже по ссылкам не дает переходить, я не знаю, что это за баг

Цитата
andylu написал:
Если у вас в гуглтаблице нет массивов - то решить проблему открытия файла у вас и можно пробовать печататься с экселя.
у меня там только sort, filtr и unique почти, ну по крайней мере на этих 4 листах, что нужно печатать

еще у меня в экселе проблемы с печатью, он мне выдает на краю страницы картинку в несколько сантиметров "создано в демо версии универсальный конвертер документов" и получается, что широкую таблицу там не распечатаешь нормально (((

ну и смотрите, идея моего желания найти макрос была в том, чтобы сэкономть время, так мне нужно нажимать 4 раза ctrl+P и кнопку "далее"
а получается, что файл у меня весит ого-го, для моего ноута он тяжелый, в гугл таблицах, которые как я понимаю работают на серверах, он нормально пашет, а мой ноут будет его с трудом открывать, т.е. реально мне будет быстрее просто руками распечатать 4 листа, чем таскать файл в эксель и оттуда печатать

но спасибо вам большое, интересно поразбираться, как все устроено)
Страницы: 1
Наверх