【发布时间】:2016-10-04 05:00:42
【问题描述】:
我遇到了这段代码的问题。 此代码的目的是将文件夹中保存的所有 visio 文件从 EXCEL VBA 宏转换为 pdf...
使用此代码,我可以打开 visio 文件但无法转换为 pdf 文件....它显示“需要对象”错误....
FName = myPath & myFile
Dim objDoc: Set objeDoc = VisioApp.documents.Open(FName)
objDoc.ExportAsFixedFormat VisFixedFormatTypes = 1, FName, VisDocExIntent = 1, VisPrintOutRange = 0
我遇到了上述问题
Sub LoopAllExcelFilesInFolder()
Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog
Dim FName As String
'Optimize Macro Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'Retrieve Target Folder Path From User
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "Select A Target Folder"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With
'In Case of Cancel
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings
'Target File Extension (must include wildcard "*")
myExtension = "*.vsd"
'Target Path with Ending Extention
myFile = Dir(myPath & myExtension)
'Loop through each Excel file in folder
Do While myFile <> ""
Set VisioApp = CreateObject("Visio.Application")
FName = myPath & myFile
Dim objDoc: Set objeDoc = VisioApp.documents.Open(FName)
'Application.ActiveDocument.ExportAsFixedFormat visFixedFormatPDF, "C:\Users\20098323\Desktop\BHAVIK\VAC-30001.pdf", visDocExIntentPrint, visPrintAll, 1, 53, False, True, True, True, False
objDoc.ExportAsFixedFormat VisFixedFormatTypes = 1, FName, VisDocExIntent = 1, VisPrintOutRange = 0
myFile = Dir
Loop
'Message Box when tasks are completed
MsgBox "Task Complete!"
ResetSettings:
'Reset Macro Optimization Settings
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
除非您添加了对 Visio 对象库的引用,否则 VBA 将无法识别那些 visXxxxxx 常量。如果您使用 Option Explicit 会提醒您注意问题。
-
但是我应该在这段代码中做什么样的改变?
-
在代码模块顶部添加 Option Explicit。这将向您指出您将变量拼错为
objeDoc。此外,我不确定您对这些参数做了什么,但这不符合我的任何建议。
标签: vba excel pdf macros visio