сегодня весь день пурхаюсь с макросами. так и не получилось вывести на печать файлы с разными именами
подскажите - как распечатать на Adobe PDF (акробатовском принтере) табличку со всеми возможными фильтрами в первой колонке и с автоименованием файлов?
что получилось сделать: ('основной макрос (полурабочий)) *переключение фильтра *печать
что не получается сделать: (''нерабочие строки макроса) *сделать активным принтер "Adobe PDF". (из трех методов отсюда http://excelvba.ru/code/printers у меня почему то работает только второй. отслеживаю в окошке Immediate) *автоименование файла *параметры печати - там в списке чуть ниже выскакивает ошибка "нельзя установить свойство PageQuality класса PageSetup"
прикрепила архив - в нем поместились только два сделанных вручную файла PDF, остальные заменила пустышками
вам наверное покажется это очень простым. а я вот только начала осваивать макросы, год "сидела" на формулах. надо потихонечку переезжать на макросы
похоже единственный вариант автопечати и сохранения в файл, но макрос заставляет зависнуть весь Excel. помогает только завершение процесса и имя файла все равно не вписывается автоматически :( есть вариант лечения его?
по такому макросу получается, что сначала принтер печатает и спрашивает имя файла, а потом макрос вписывает С:\111.pdf в последнюю выбранную ячейку
неужели в Selection.PrintOut нельзя сделать автоименование? или эксперементировать и ставить другие PDF принтеры ? или выносить все на отдельный лист и делать ActiveSheet.ExportAsFixedFormat? (очень не хочется ;( )
Так у Вас 2007/10, раз есть возможность ExportAsFixedFormat? Сейчас посмотреть негде, но кажется, что в настройках была возможность при ExportAsFixedFormat выбирать только область печати. Если так, то я бы предпочёл сохранять в PDF, а не печатать - проще всё реализовать.
Попробуйте просто записать рекордером процесс сохранения в пдф области печати листа - потом поменяете код. Если конечно там есть такая возможность - сохранять область печати.
только вот вопрос меня не покидает - а если в эту таблицу вставить новый столбик посередине. формулы Excel меняет автоматом с учетом добавления столбца. а в макросах не меняется. это вручную каждый раз придется править все ссылки?
Set rrange = Range("$E$10").CurrentRegion.Offset(2).Resize(Range("$E$10").CurrentRegion.Offset(2).Rows.Count - 2) Замените все Range("$E$10:$G$18") на rrange, и можете спокойно вславлять/удалять столбцы.
похоже настройки совсем разные. даже формат A4 Excel не сделал. при приближении на 800% файлы одинаковые. но при масштабе 100% в экселевском как бы плывут буквы, тона и строки. может это из-за "Быстрый просмотр в Web: да" и из-за неверного размера листа? подскажите, куда копать? у ExportAsFixedFormat всего то 9 свойств. неужели что то среди них недоглядела?
ExportAsFixedFormat - выдает неподходящее качество PDF
остается PrintOut (Adobe PDF, PDFCreator, doPDF) но имя файла можно задать только при PrintToFile:=True, PrToFileName:= а значит формируется файл *.ps, который нужно дистиллером или еще чем-то сохранить в PDF. (если я правильно все поняла)
подскажите, есть ли у нас на форуме кусок кода для именования файла и преобразования .ps в .pdf ?
если Call appDist.odist.FileToPDF("C:\111.ps", "C:\111.pdf", sJobOptions) запихнуть в процедуру Sub, и два раза вызвать эту процедуру в основном макросе - то выдается ошибка.
а если просто два раза скопировать содержимое процедуры в основной макрос, то печатает два раза нормально
2. ActiveSheet.PrintOut , printtofile:=True, ActivePrinter:="Adobe PDF on Ne03:", _ PrToFileName:=psfilename Dim pdf As New ACRODISTXLib.PdfDistiller pdf.FileToPDF psfilename, pdffilename, ""
*кланяется гуглу и забугорным форумам и просит переименовать тему в "мемуары Лены" :)
Никак не пойму суть проблемы Sub Макрос2() doPDF = "D:\Do_Pdf\" nm = Split(ThisWorkbook.Name, ".")(0) oldName = doPDF & nm & ".pdf" newName = doPDF & nm & "a" & ".pdf" ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ ActivePrinter:="doPDF v7", _ IgnorePrintAreas:=False Application.Wait Now + TimeValue("00:00:02") Name oldName As newName End Sub