由于以下几个原因here,我无法打开这样的Excel工作表:
Set excel = CreateObject("Excel.Application")
excel.Visible = False
Set excelWb = excel.Workbooks.Open(file_path.xls)
所以我试图像这样打开它:
CreateObject("WScript.Shell").Run "excel.exe"
Wscript.Sleep 5000 ' wait for it to load
Set excel = GetObject(,"Excel.Application")
excel.visible = False
Set excelWb = excel.Workbooks.Open(file_path.xls)
然而,这给了我this错误:
ActiveX component can't create object
除非我已经打开了excel,否则我会打开两个页面:
CreateObject("WScript.Shell").Run "excel.exe"
Wscript.Sleep 5000
CreateObject("WScript.Shell").Run "excel.exe"
Wscript.Sleep 5000
Set excel = GetObject(,"Excel.Application")
excel.visible = False
Set excelWb = excel.Workbooks.Open(file_path.xls)
但这给我留下了一张可见的excel表。我需要打开两个才能使用GetObject
,这有点奇怪。关于这个的任何想法?
答案 0 :(得分:1)
如果您的目标是在后台打开工作簿,这可能是更好的选择:
On Error Resume Next
Dim excel, excelWB
CreateObject("WScript.Shell").Run "excel.exe /e ""C:\Test\blank.xlsx"""
Set excelWB = Nothing
Do
Set excel = GetObject(, "Excel.Application")
Set excelWB = excel.Workbooks("blank.xlsx")
Loop While excelWB Is Nothing
excel.Visible = False