2015-07-27 13 views
5

Tôi sử dụng macro để tạo báo cáo hàng ngày. Macro lưu báo cáo xls dưới dạng xls trong lịch sử. Do kích thước tệp lớn, tôi muốn lưu báo cáo dưới dạng xlsb. Hai vấn đề. Tập lệnh macro tôi đang sử dụng sẽ chạy nhưng tôi không thể mở tệp xlsb sau. Tin nhắn nhận được làCần lưu sổ làm việc xls Vì xlsb với VBA

"Excel không thể mở tệp 'Báo cáo hoạt động RDN.xlsb' vì định dạng tệp hoặc đuôi tệp không hợp lệ. Hãy xác minh rằng tệp không bị hỏng và tiện ích mở rộng tệp khớp với định dạng 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") 

Lưu ý:. tôi cũng cần một kịch bản mà có thể mở một tập tin khi tên file có ngày trong tên tập tin và ngày tập tin là ngày hôm qua như "RDN Activity Report.20150726"

+1

Change 'xlNormal' cho 'xlExcel12' – Rory

Trả lời

11

Sử dụng.210 tham số FileFormat:

  • 50 = xlExcel12 (Excel Binary Workbook trong 2007-2013 có hoặc không có macro, xlsb)

  • 51 = xlOpenXMLWorkbook (mà không cần macro trong 2007-2013, xlsx)

  • 52 = xlOpenXMLWorkbookMacroEnabled (có hoặc không có macro trong 2007-2013, xlsm)

  • 56 = xlExcel8 (97-2003 định dạng trong Excel 2007-2013, xls)

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

Chỉ cần để làm cho câu trả lời MatthewD của rõ ràng - đưa các chuỗi văn bản". xlsb "trong tham số tên tệp cũng giống như thay đổi phần mở rộng tệp theo cách thủ công. Nó không thay đổi định dạng của tập tin. Để làm điều đó, bạn cần sử dụng tham số FileFormat. – nwhaught

+0

@nwhaught là chính xác. Nó không quan trọng những gì bạn gọi là bảng tính, các tập tin định dạng là những gì đặt định dạng. – MatthewD

Các vấn đề liên quan