添加 OLEObjects 在宏内工作,如果在 cmd 中作为 vbs 脚本执行则失败
Add OLEObjects work inside macro and fail if executed as vbs script in cmd
在 excel 文件 (xlsm) 中执行的代码完美运行
Sub insertObject()
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPath\Datasheet.xlsx")
objExcel.Application.Visible = True
objWorkbook.ActiveSheet.OLEObjects.Add(Filename:="YourPath\Placeholder.txt", _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\Windows\system32\packager.dll", IconIndex:=0, IconLabel:= _
"C:\Placeholder.txt").Select
objWorkbook.SaveAs "yourPath\test.xlsx"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
End Sub
这是我尝试使用 vbs 脚本执行的代码
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPath\Datasheet.xlsx")
objExcel.Application.Visible = True
ActiveSheet.OLEObjects.Add(Filename:="YourPath\Placeholder.txt", _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\Windows\system32\packager.dll", IconIndex:=0, IconLabel:= _
"C:\Placeholder.txt").Select
objWorkbook.SaveAs "YourPath\test.xlsx"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
我用真实的路径替换了路径当然代码在宏中完美运行但是当我尝试使用 cmd 命令 运行 它时在 vbs 脚本中失败。
当我 运行 你的代码时,我得到了同样的结果。我尝试了一些不同的调整并且有效:
您只是忘记了 OLEobject 的添加函数的第一个参数,并且不要忘记删除参数名称:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPath\Datasheet.xlsx")
objExcel.Application.Visible = false
Set ob = objWorkbook.ActiveSheet.OLEObjects
Set t = ob.Add (,"YourPath\Placeholder.txt",False, True, "C:\Windows\system32\packager.dll", 0,"C:\Placeholder.txt")
在 excel 文件 (xlsm) 中执行的代码完美运行
Sub insertObject()
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPath\Datasheet.xlsx")
objExcel.Application.Visible = True
objWorkbook.ActiveSheet.OLEObjects.Add(Filename:="YourPath\Placeholder.txt", _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\Windows\system32\packager.dll", IconIndex:=0, IconLabel:= _
"C:\Placeholder.txt").Select
objWorkbook.SaveAs "yourPath\test.xlsx"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
End Sub
这是我尝试使用 vbs 脚本执行的代码
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPath\Datasheet.xlsx")
objExcel.Application.Visible = True
ActiveSheet.OLEObjects.Add(Filename:="YourPath\Placeholder.txt", _
Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\Windows\system32\packager.dll", IconIndex:=0, IconLabel:= _
"C:\Placeholder.txt").Select
objWorkbook.SaveAs "YourPath\test.xlsx"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
我用真实的路径替换了路径当然代码在宏中完美运行但是当我尝试使用 cmd 命令 运行 它时在 vbs 脚本中失败。
当我 运行 你的代码时,我得到了同样的结果。我尝试了一些不同的调整并且有效: 您只是忘记了 OLEobject 的添加函数的第一个参数,并且不要忘记删除参数名称:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("YourPath\Datasheet.xlsx")
objExcel.Application.Visible = false
Set ob = objWorkbook.ActiveSheet.OLEObjects
Set t = ob.Add (,"YourPath\Placeholder.txt",False, True, "C:\Windows\system32\packager.dll", 0,"C:\Placeholder.txt")