2015-07-27 19 views
5

Günlük rapor oluşturmak için bir makro kullanıyorum. Makro xls raporunu tarihsel olarak xls olarak kaydeder. Büyük dosya boyutu nedeniyle raporu xlsb olarak kaydetmek istiyorum. Iki problem. Kullandığım makro komut dosyası çalışır ancak xlsb dosyasını daha sonra açamıyorum. Alınan İletixls çalışma kitabını kaydetmeniz gerekiyor VBA ile xlsb olarak

olduğunu

"Excel dosya biçimi veya dosya uzantısı geçerli olmadığından. 'file'RDN Etkinlik Report.xlsb açmak dosyası bozuk edilmemiştir emin olun ve dosya uzantısı biçimini eşleştiğini olamaz dosya

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") 

Not:. Ben de dosya adı dosya adı ve dosyanın tarih tarih olduğunda bir dosyayı açmak bir komut dosyasına gerek gibi dünkü tarihi olan "RDN Activity Report.20150726"

+1

Değişim 'xlNormal'' xlExcel12' – Rory

cevap

11

Kullanım.210 parametre FileFormat:

  • 50 = xlExcel12 (veya makro yıllardan olmadan 2007-2013 Excel İkili Çalışma Kitabı, xlsb) (2007-2013 makro yıllardan olmadan, xlsx)

  • 51 = xlOpenXMLWorkbook

  • ile (ya da 2007-2013 makro 's olmadan xlsm)
  • 52 = xlOpenXMLWorkbookMacroEnabled

  • 56 = xlExcel8 (Excel 2007-2013 97-2003 formatında, xls)

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

Sadece MatthewD cevabı açık hale getirmek için için - metin dizesi" koyarak. xlsb "dosya adı parametresinde sadece dosya uzantısını manuel olarak değiştirmek gibidir. Dosyanın biçimini değiştirmez. Bunu yapmak için FileFormat parametresini kullanmanız gerekir. – nwhaught

+0

@nwhaught doğrudur. Çalışma kitabını ne aradığınız önemli değil, formatı oluşturan dosya formatıdır. – MatthewD

İlgili konular