使用VBA宏将PDF文件插入电子表格时出错:“运行时错误'1004':无法插入对象。”

时间:2019-05-16 20:08:27

标签: c++ excel vba solidworks

我为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

0 个答案:

没有答案