Vba Excel .SaveAs xlCSV对象定义错误
问题描述:
当试图通过VBA和ojbExcel保存工作表时,我得到了许多人已经拥有的对象定义错误(1004)。这种情况令人讨厌的是,它之前运行良好,但昨天开始给我这个错误。我研究了这个错误,并且我尝试了大多数解决方案,但无济于事。 有问题的代码是:Vba Excel .SaveAs xlCSV对象定义错误
fileLoc = Session.GetOpenFilename("Excel (*.xls*), *.xls*")
If fileLoc = "" Then Exit Sub
Set oXl = CreateObject("Excel.Application")
fpath = fileLoc
spath = "H:\Download\"
sheetnum = InputBox("Please insert the sheet number(Count from left to right).", "Select Sheet!")
fdir = Dir(fpath)
If Trim(fdir) <> "" Then
If Right(fdir, 5) = ".xlsx" Then
Set oWorkbook = oXl.workbooks.Open(fileLoc, False, True)
Set oWorksheet = oWorkbook.worksheets(sheetnum)
oXl.Activeworkbook.worksheets(sheetnum).SaveAs FileName:=spath & oWorksheet.Name, FileFormat:=xlCSV
'other options I have tried:
'oWorksheet.SaveAs spath & oWorkbook.worksheets(sheetnum).Name, xlCSV
'oWorksheet.SaveAs spath & oWorksheet.Name, xlCSV 'this last one worked previously
End if
End if
oWorkbook.Close
Set oWorkbook = Nothing
oXl.Quit
Set oXl = Nothing
什么可能发生变化,这不工作了? Excel 2010,脚本从Citrix客户端上的Reflection终端运行。
谢谢你的时间。
答
我假设这段代码实际上并不是从Excel运行的,在这种情况下,xlCSV
常量不起作用,除非您设置了对Microsoft Excel xx.x Objects
库(即早期绑定)的引用。您已使用后期绑定,因此xlCSV
将被视为具有空值的未声明变体类型。
使用文字value of the xlFileFormat常数代替:
oXl.Activeworkbook.worksheets(sheetnum).SaveAs FileName:=spath & oWorksheet.Name, FileFormat:=6
谢谢!我完全不知道这个工作本周是如何工作的,也许是因为我没有正确关闭我的objExcel(以前遇到过这个问题),但它现在可以工作。谢谢! – Witloofdc