Printquality 600 ошибка 1004

  • Remove From My Forums
  • Вопрос

  • Issue:

    I turn off printercommunication at begining of macro:

          Application.PrintCommunication = False

    Then I turn on after macro executes:

          Application.PrintCommunication = True

    Problem:

    I keep getting a Run-time error 1004:  Method ‘PrintCommuinication’ of object’_Application failed when the macro tries to turn the printcommunication back on (Application.PrintCommunication = True)

    Any help on this would be appreciated.  I just can’t seem to find the problem.

    Thank you.

    Bob Sutor

Ответы

  • It appears that you are using a UDF to set the print parameters. I tested using actual parameters and it works fine for me.

    My printers are connected via USB cables. How are yours connected?

    What occurs if you record the code to set print parameters? Are the 2 PrintCommunication lines included because they are when I record the code.

    The PrintCommunication lines do not appear to be required when running the code so test without them and if it works then simply delete them. In the Remarks section of the reference I gave you it quotes «Set the
    PrintCommunication property to False to speed up the execution of code that sets PageSetup properties». This might be true in theory but in practice I doubt that you will be able to tell the difference.


    Regards, OssieMac

    • Помечено в качестве ответа

      31 августа 2012 г. 6:38

Я пытаюсь распечатать счет-фактуру после создания PDF-файла, но получаю сообщение об ошибке:

Ошибка метода PrintOut класса рабочего листа

Процедура печати работает отлично, пока я не вызываю процедуру генерации pdf.

Пробовал скрывать листы, активировать, снова выбирать… но ничего не получается. Я новичок в VBA, поэтому, если кто-нибудь может объяснить мне, почему я получаю эту ошибку, было бы здорово.

Sub Print()
    Dim ImprCour As String
    Dim Impr2 As String
    ImprCour = Application.ActivePrinter
    Impr2 = "WorkCenter 6515"
    Application.ActivePrinter = Impr2
    Worksheets("Facture").Visible = True
    Worksheets("Retour").Visible = True
    Sheets(Array("Facture", "Retour")).Select
    MsgBox ActiveSheet.Name
    Worksheets(Array("Facture", "Retour")).PrintOut
    Worksheets("Facture").Visible = xlVeryHidden
    Worksheets("Retour").Visible = xlVeryHidden
    Worksheets("Facture").Visible = True
    Worksheets("Retour").Visible = True
    Application.ActivePrinter = ImprCour
End Sub

Sub Pdf_And_Print()
Sheets(Array("Facture", "Retour")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    FileName:="/Users/stefland/Desktop/Projets/Pro/...-v.03/.../.../.../.../..." & "_" & Range("H21").Value & ".pdf", _
    OpenAfterPublish:=True, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    Quality:=xlQualityStandard, _
    From:=1, To:=2
    Print
End Sub

I’m creating a sub for the page setup of a sheet. An error message pops up for .PrintTitleRows = Match. The sub functions perfectly if I take out that line. I looked into this error on Microsoft support, it says «This problem occurs when there are no printer drivers installed on your computer. Excel cannot set or get page setup properties if no printer drivers are installed.»

Interestingly, the page lists other properties in the .PageSetup class, including .CenterHeader, .PrintQuality, .Orientation, and a host of other properties that are in my code. It would make more sense if this error came up for every property corresponding to the error type, but only .PrintTitleRows does it.

Here is my code:

Sub PageSetup_General2()
Dim WS As Worksheet
Dim Match As Range

Set WS = ActiveWorkbook.ActiveSheet
Application.PrintCommunication = True

Set Match = WS.Cells.Find(What:="Source #", LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        'Find Range for .PrintTitleRows
        
With WS.PageSetup
        .CenterHeader = "&F"
        .LeftFooter = "Prepared by " & Application.UserName
        'Sets username, to check what your username is, go to File>Options>General
        .CenterFooter = "&D"
        .RightFooter = "Page &P"
        .LeftMargin = Application.InchesToPoints(0.25)
        .RightMargin = Application.InchesToPoints(0.25)
        .TopMargin = Application.InchesToPoints(0.75)
        .BottomMargin = Application.InchesToPoints(0.75)
        .HeaderMargin = Application.InchesToPoints(0.3)
        .FooterMargin = Application.InchesToPoints(0.3)
        'Sets arrow margins
        .PrintQuality = 600
        .Orientation = xlLandscape
        'Sets Landscape
        .PaperSize = xlPaperLetter
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .PrintTitleRows = Match
        'Yields error: "Run-time error '1004': "Unable to set the PrintTitleRows property of the PageSetup class"
End With
End Sub

I’m messing with Application.PrintCommunication and double checking that my printer drivers are installed, but to no avail…Any thoughts on what’s going on with this sub?

Хотя это разрешено в комментариях, ответ лучше всего так;

В PrintTitleRowsсвойство, согласно документации MS:

Возвращает или задает строки, содержащие ячейки, которые должны повторяться вверху каждой страницы, в виде строки в нотации стиля A1 на языке макроса. Чтение / запись строки.

Таким образом, чтобы получить обозначение в стиле A1, используйте Range.Address недвижимость — в вашем случае, Match.Address. Допустим, ваш диапазон представляет собой ячейкиA5 к D5, который вернет Match.Address в качестве $A$5:$D$5

Вы можете ссылаться на документацию по свойству.Address здесь.

Если вы хотите вернуть адрес без $абсолютная ссылка, установите для параметров rowAbsolute и columnAbsolute значениеFalse, т.е. .Address False, False который вернется A5:D5

Некоторые люди жаловались на Excel ошибка времени выполнения 1004. С самого начала эта ошибка может показаться серьезной проблемой, но по правде говоря, это больше отвлекает, чем что-либо еще. Ошибка времени выполнения 1004 может возникнуть, если Excel не получает доступ к Microsoft Visual Basic для приложений (VBA) или макросам.

Ошибка Excel 1004

Мы говорим это потому, что ошибку времени выполнения 1004 легко исправить, поэтому люди не должны терять из-за нее голову. Да, мы понимаем, что это замедляет ваш рабочий процесс, но как только вы поймете, как вращать вещи, все будет в порядке. Теперь необходимо указать, что любой, кто столкнется с этой ошибкой, не сможет использовать определенные библиотеки ресурсов. Кроме того, могут возникать проблемы с производительностью и постоянные сбои, что еще больше затрудняет использование Excel.

Что такое ошибка времени выполнения 1004 в Excel

По нашему опыту, ошибка появляется в основном, когда пользователь пытается запустить макрос MS Visual Basic для приложений. Все это является процедурой безопасности для блокировки MS VBA из Excel, но если пользователь решит предоставить ему доступ, то ошибка времени выполнения 1004, скорее всего, никогда не появится. Сообщение об ошибке может иметь несколько вариантов, а именно:

  • Ошибка выполнения 1004: ошибка, определяемая приложением или объектом
  • Ошибка выполнения 1004: сбой метода копирования класса листа
  • Ошибка 1004: программный доступ к проекту Visual Basic не является доверенным.

Первое, что вам здесь потребуется, это открыть Параметры Excel, что очень просто. Просто откройте Microsoft Excel, затем нажмите «Файл» и выберите «Параметры».

Исправить ошибку 1004 в Excel

Сразу должен появиться раздел Параметры доверия. Оттуда выберите Настройки макроса.

Наконец, нажмите на Доверять доступ к объектной модели проекта VBA, затем нажмите Ok кнопку и все тут.

Сканирование на наличие вредоносных программ

В качестве меры предосторожности вы можете также выполнить сканирование на наличие вредоносных программ, поэтому обязательно запустите свой сканер защиты от вредоносных программ и выполняйте регулярное сканирование, чтобы увидеть, не всплывает ли что-нибудь. Если ничего не происходит, мы предлагаем выполнить полную проверку на вирусы, чтобы убедиться, что все в порядке.

Microsoft Defender — отличный инструмент для этой работы, но если вам этого недостаточно, мы предлагаем использовать бесплатный автономный сканер вредоносных программ.

Понравилась статья? Поделить с друзьями:
  • Pressure tank filling touareg ошибка устранение
  • Press start button again ошибка киа соренто
  • Press clutch pedal ошибка ман тга
  • Press button x3 voopoo что означает ошибка
  • Presentation error ошибка неправильного формата результата