2015-07-27 6 views
5

Uso una macro per creare un report giornaliero. La macro salva storicamente il rapporto xls come xls. A causa delle grandi dimensioni del file, voglio salvare il report come xlsb. Due problemi Verrà eseguito lo script macro che sto usando, ma non posso aprire il file xlsb in seguito. Messaggio ricevuto èÈ necessario salvare la cartella di lavoro xls come xlsb con VBA

"Excel non può aprire il file'RDN attività Report.xlsb' perché il formato di file o estensione del file non è valido. Verificare che il file non è stato danneggiato e che l'estensione del file corrisponde al formato di il file

txtFileName = Format(Date - 1, "yyyymmdd") 
ActiveWorkbook.SaveAs Filename:= _ 
    "\\Clt-stor01a\CA_Services\RDN Reports\ForUploadPrev\RDN Activity Report." & txtFileName & ".xlsb", _ 
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ 
    ReadOnlyRecommended:=False, CreateBackup:=False 
    txtFileName = Format(Date - 1, "yyyymmdd") 

Nota:. ho anche bisogno di uno script in grado di aprire un file quando il nome del file ha data nel nome del file e la data di file è la data di ieri come "RDN Activity Report.20150726"

+1

Change 'xlNormal' a' xlExcel12' – Rory

risposta

11

Usa.210 parametro FileFormat:

  • 50 = xlExcel12 (Excel Binary cartella di lavoro nel periodo 2007-2013, con o senza di macro, xlsb)

  • 51 = xlOpenXMLWorkbook (senza di macro nel periodo 2007-2013, xlsx)

  • 52 = xlOpenXMLWorkbookMacroEnabled (con o senza macro nel 2007-2013, xlsm)

  • 56 = xlExcel8 (97-2003 formato Excel 2007-2013, xls)

    ActiveWorkbook.SaveAs "C:\temp\text.xlsb", fileformat:=50 
    
+0

Giusto per rendere la risposta di MatthewD esplicito - mettere la stringa di testo". xlsb "nel parametro nome file è come modificare manualmente l'estensione del file. Non cambia il formato del file. Per fare ciò, è necessario utilizzare il parametro FileFormat. – nwhaught

+0

@nwhaught è corretto. Non importa ciò che chiami la cartella di lavoro, il formato file è ciò che imposta il formato. – MatthewD