簡體   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