Как исправить «класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс» - PullRequest
0 голосов
/ 25 мая 2019

Один из моих макросов выдает мне сообщение об ошибке «класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс», когда я пытаюсь экспортировать рабочую таблицу в формате PDF.

Я переместил свой файл инвентаря Excel с MacBook, на котором работала Windows 7, на ПК с Windows 10. Все макросы, которые я использую в повседневной работе, работали, кроме одного, который состоял из экспорта листа в PDF. Я исследовал ошибку и обнаружил, что могут быть проблемы с файлами dll, так как я перешел с Windows 7 на Windows 10, что имело смысл, потому что этот же макрос работал отлично в течение многих месяцев на моей машине с Windows 7. Полная ошибка была: «Ошибка времени выполнения« 430 »: класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс. " Я не очень опытен, когда дело доходит до файлов EXE и DLL, поэтому я не мог найти способ «обновить» их

Sub ExportPDFProforma()

Application.ScreenUpdating = False

Sheets("Sheet1").Select

Dim ExportName As String

If Range("B5").Value = "" Then
    ExportName = "Test"
Else
    ExportName = Range("B5").Value
End If

Sheets("Sheet1").Copy Before:=Sheets(1)
Sheets("Sheet1 (2)").Select
Sheets("Sheet1 (2)").Move After:=Sheets(5)
Sheets("Sheet1 (2)").Select
Sheets("Sheet1 (2)").Name = "Print Preview"
Range("A1:L49").Select
Range("L49").Activate
Selection.Copy
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False

Call PreviewFormatting

Dim Shp As Shape

For Each Shp In ActiveSheet.Shapes
If Not Shp.Type = msoPicture Then
Shp.Delete
End If
Next Shp

If Range("B4") = "x" Then
Call HideBlankRows(Range("F14:F23"), Range("D36:D45"))
Else
Call HideBlankRows(Range("F14:F23"), Range("D34:D43"))
End If

Worksheets("Print Preview").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\...", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Range("A1:B1").Select

Application.DisplayAlerts = False
Sheets("Print Preview").Delete
Application.DisplayAlerts = True
Sheets("Sheet1").Select
Application.ScreenUpdating = True

End Sub

Строки ошибок:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\...", 
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Это также может быть просто синтаксическая ошибка где-то из-за более новой версии VB в Windows 10. Кто-нибудь знает способ исправить это или способ обойти это?

1 Ответ

0 голосов
/ 26 мая 2019

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

Option Explicit
Sub ExportPDF()
Dim PDFFile as String

PDFFile = “C:\someFolder\MyFile.PDF”
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFile, 
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=OpenPDFAfterCreating

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...