繁体   English   中英

Vba Excel .SaveAs xlCSV对象定义的错误

[英]Vba Excel .SaveAs xlCSV object defined error

当尝试通过带有ojbExcel的VBA将.SaveAs工作表保存为工作表时,我得到了很多人已经遇到的对象定义错误(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终端运行。

感谢您的时间。

我假设此代码实际上不是从Excel运行的,在这种情况下,除非您设置了对Microsoft Excel xx.x Objects库的引用(即Early Binding),否则xlCSV常量将无法工作。 您使用了后期绑定,因此xlCSV将被视为具有空值的未声明变体类型。


请使用xlFileFormat常量的文字代替:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM