Member 13410448 Ответов: 3

Ошибка времени выполнения ниже кода


Sub InvoiceReport()

    Dim myFile As String, lastRow As Long

    myFile = "C:\Users\iaquino\Documents\Invoices\" & _ 
        Sheets("Invoice").Range("A10") & "_" & _
        Sheets("Invoice").Range("F4") & _
        Format(Now(), "yyy-mm-dd") & ".pdf"

    lastRow = Sheets("Invoice File").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1

    'Transfer data to Invoice File
    Sheets("Invoice File").Cells(lastRow, 1) = Sheets("Invoice").Range("A10")
    Sheets("Invoice File").Cells(lastRow, 2) = Sheets("Invoice").Range("F4")
    Sheets("Invoice File").Cells(lastRow, 3) = Sheets("Invoice").Range("F28")
    Sheets("Invoice File").Cells(lastRow, 4) = Now
    Sheets("Invoice File").Hyperlinks.Add Anchor:=Sheets("Invoice File").Cells(lastRow, 5), Address:=myFile, TextToDisplay:=myFile

    'Create invoice in PDF format
    Sheets("Invoice").ExportAsFixedFormat Type:=xlTypePDF, Filename:=myFile

    Application.DisplayAlerts = False

    'create invoice in XLSX format
    ActiveWorkbook.SaveAs "C:\Users\iaquino\Documents\invoices\" & _
        Sheets("Sheet1").Range("A10") & "_" & _
        Sheets("Invoice").Range("F4") & "_" & _
        Format(Now(), "yyy-mm-dd") & "xlsx", FileFormat:=51

    Application.DisplayAlerts = True

End Sub




Отладка ошибок:-
Ошибка времени выполнения '5'


Листы ("Счет-Фактура").ExportAsFixedFormat Type:=xlTypePDF, Filename:=myFile
Приложение.DisplayAlerts = False

Что я уже пробовал:

Плз дайте срочное решение этой проблемы.

3 Ответов

Рейтинг:
2

Jochen Arndt

Если это происходит при вызове ExportAsFixedFormat, могут быть следующие причины :


  • Надстройка PDF не установлена
  • Путь C:\Users\iaquino\Documents\Invoices\ не существует
  • У вас недостаточно прав для записи вышеуказанного пути (не выполняется как пользователь якино)
  • Созданное имя файла (ячейки A10 и / или F4) содержит зарезервированные символы; см. Именование файлов, путей и пространств имен (Windows)[^]
По некоторым из вышеперечисленных причин могут быть разные коды ошибок, но вы должны проверить их все.


Рейтинг:
0

Graeme_Grant

Быстрый поиск в Google "Excel error 5" возвращает это: Недопустимый вызов процедуры или аргумент (Ошибка 5)[^]

Так что теперь вам нужно выяснить, где. Для этого установите точку останова на первой строке и шагайте до тех пор, пока не попадете в строку с ошибкой. Теперь вы знаете, где ошибка, и теперь вы готовы исправить ее.

Если на самом деле это та линия, которую вы определили, то вам нужно проверить требования к функции: Метод ExportAsFixedFormat [Справочник Разработчика Excel 2007][^]. На первый взгляд, может возникнуть проблема с путем & / или именем файла. Существует ли путь? Это myFile допустимый путь+имя файла?


Рейтинг:
0

Patrice T

Не ваш вопрос, А эта строчка

lastRow = Sheets("Invoice File").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1

может быть упрощен до
lastRow = Sheets("Invoice File").UsedRange.RowS.Count + 1