我为Solidworks创建了VBA宏,在其中我尝试创建当前打开的工程图的副本并将其作为PDF导出到当前打开的Microsoft Excel电子表格中的新图纸中。
我对示例进行了非常深入的搜索,并对如何实现这一目标感到困惑。我似乎可以在50%的时间内工作,但是有时在运行几次后,它可能会在不同的PC或同一台PC上失败。有时它可以完全正常运行,有时可以保存PDF,但格式错误且信息丢失,有时会出现运行时错误。
通常,我会遇到以下错误之一:
“运行时错误'1004':无法插入对象。”
或者:
“运行时错误'-2147023170(800706be)':自动化错误远程过程调用失败。”
我可以看到它正确地创建了新工作表,但是在实际添加OLEObject之前失败了。有时,它会半添加对象,然后失败。
我正在使用Excel版本1808(内部版本10730.20334)和Solidworks Professional 2018 SP4.0。
对此有何想法?任何建议都将非常有用。谢谢。 “将工程图另存为PDF,然后嵌入Excel(文件将在以后删除)
saveDwgPath = Left(swDwg.GetPathName, InStrRev(swDwg.GetPathName, ".") - 1) & ".PDF"
swDwg.SaveAs3 saveDwgPath, 0, 0
Set xlSheetAdd = xlApp.ActiveWorkbook.Sheets.Add(After:=xlApp.Worksheets(xlApp.Worksheets.count))
'Add new sheet
xlSheetAdd.Name = "Drawing PDF" 'Set sheet name
xlSheetAdd.Activate ' Activate sheet
xlSheetAdd.OLEObjects.Add(FileName:=saveDwgPath, Link:=False, DisplayAsIcon:=False).Activate ' Add PDF object
'Delete file after embedding in Excel
If (Dir(saveDwgPath) <> "") Then 'See above
' First remove readonly attribute, if set
SetAttr saveDwgPath, vbNormal
' Then delete the file
Kill saveDwgPath
End If