Vba Excel .SaveAs xlCSV对象定义错误

时间:2016-01-20 14:03:54

标签: vba excel-vba excel

当尝试使用ojbExcel通过VBA作为工作表时,我得到很多人已经拥有的对象定义错误(1004)。令人讨厌的是这个案子以前工作得很好,但昨天开始给我这个错误。我研究了这个错误,我尝试了大多数解决方案,但无济于事。 有问题的代码是:

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终端运行。

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

我假设此代码实际上并非从Excel运行,在这种情况下,Microsoft Excel xx.x Objects常量不会起作用,除非您已设置对{{{{}的引用1}}库(即早期绑定)。您已使用后期绑定,因此xlCSV将被视为具有空值的未声明变体类型。

使用文字value of the xlFileFormat常量代替:

oXl.Activeworkbook.worksheets(sheetnum).SaveAs FileName:=spath & oWorksheet.Name, FileFormat:=6