如何修复“类不支持自动化或不支持预期的接口”

时间:2019-05-25 17:11:47

标签: excel vba object export

当我尝试将工作表导出为PDF时,我的一个宏给我错误“类不支持自动化或不支持预期的界面”。

我将excel库存文件从运行Windows 7的MacBook移到了运行Windows 10的PC。我日常使用的宏全部正常工作,除了一个宏,其中包括将工作表导出为PDF。我研究了该错误,发现自从Windows 7迁移到Windows 10以来,dll文件可能存在问题,这是有道理的,因为同一个宏在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

由于Windows 10上的VB版本较新,这也可能只是语法错误。 有人知道解决该问题的方法吗?

1 个答案:

答案 0 :(得分:0)

尝试类似这样的方法。我看不到完整的代码来进行分析,因此请查看我的内容,也许您会发现一些差异。

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