在excel文件(xlsm(中执行的代码可以完美地进行
Sub insertObject()
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPathDatasheet.xlsx")
objExcel.Application.Visible = True
objWorkbook.ActiveSheet.OLEObjects.Add(Filename:="YourPathPlaceholder.txt", _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:Windowssystem32packager.dll", IconIndex:=0, IconLabel:= _
"C:Placeholder.txt").Select
objWorkbook.SaveAs "yourPathtest.xlsx"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
End Sub
这是我尝试使用vbs脚本执行的代码
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPathDatasheet.xlsx")
objExcel.Application.Visible = True
ActiveSheet.OLEObjects.Add(Filename:="YourPathPlaceholder.txt", _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:Windowssystem32packager.dll", IconIndex:=0, IconLabel:= _
"C:Placeholder.txt").Select
objWorkbook.SaveAs "YourPathtest.xlsx"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
我用真正的路径替换了这些路径。当然,代码在宏中运行得很好,但在使用cmd命令运行vbs脚本时失败了。
当我运行您的代码时,我得到了同样的东西。我尝试了一些不同的调整,效果很好:您只是忘记了OLEobject的add函数的第一个参数,并且不要忘记删除参数名称:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPathDatasheet.xlsx")
objExcel.Application.Visible = false
Set ob = objWorkbook.ActiveSheet.OLEObjects
Set t = ob.Add (,"YourPathPlaceholder.txt",False, True, "C:Windowssystem32packager.dll", 0,"C:Placeholder.txt")