1. 程式人生 > >【VBA研究】儲存和開啟Excel檔案的程式碼

【VBA研究】儲存和開啟Excel檔案的程式碼

iamlaosong

經常用到儲存處理之後的Excel檔案,儲存的格式有xls和xlsx兩種,這裡記錄一下儲存程式碼,因為經常用到。不同版本下指定儲存檔案格式的常數略有不同,下面是2010版將已開啟的檔案儲存為xlsx格式的程式碼:

            'DatFile是開啟的Excel檔名
            expfile = ThisWorkbook.Path & "\new" & Left(DatFile, InStr(DatFile, ".") - 1)
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs Filename:=expfile, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            ActiveWindow.Close
            Application.DisplayAlerts = True
如果儲存xls格式(97-2003工作簿),則需要令FileFormat:=xlExcel8。

如果和原來的檔案格式一樣,只是換個檔名,不指定格式也是可以的,如下:

        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\new" & datfile
        Application.DisplayAlerts = True
        ActiveWindow.Close
下面的程式碼是我用來開啟Excel檔案或者固定格式的文字檔案的函式:

'開啟檔案
Function OpenFile(fname As String) As Long
    FullName = ThisWorkbook.Path & "\" & fname
    If Dir(FullName, vbNormal) <> vbNullString Then
        If Right(fname, 3) = "log" Then
            Workbooks.OpenText Filename:=FullName, Origin:=936, StartRow:=1, DataType:=xlDelimited, Tab:=True
            Columns("A:A").Select
            Selection.NumberFormatLocal = "000000"
            Columns("A:F").Select
            Selection.Columns.AutoFit
        Else
            Workbooks.Open Filename:=FullName
        End If
        OpenFile = Range("A" & Cells.Rows.Count).End(xlUp).Row
    Else
        MsgBox "資料檔案不存在!", vbOKOnly, "iamlaosong"
        OpenFile = 0
    End If
End Function