Board logo

標題: EXCEL 03 及 07 巨集兼容問題 [打印本頁]

作者: enoch    時間: 2012-5-29 17:42     標題: EXCEL 03 及 07 巨集兼容問題

當巨集執行時, 可判斷是EXCEL 03版或 EXCEL 07版本嗎?
因為有部份語法在03用唔到

在03及07版使用同一巨集時, 如何當新檔案儲存時, 設定儲存為03版" XLS" 的檔案格式
只知在07版可以設定儲存引數
ActiveWorkbook.SaveAs Filename:=book1 ,fileformat:= xlexcel8
但引數在03版又會出現錯誤

請指教
作者: Hsieh    時間: 2012-5-29 17:51

回復 1# enoch

Application.Version
作者: HUNGCHILIN    時間: 2012-5-29 20:08

Sub 查詢Excel版本()
On Error GoTo error1
Dim myVersion As String
    Select Case Val(Application.Version)
        Case 5
            myVersion = "5.0"
        Case 7
            myVersion = "95"
        Case 8
            myVersion = "97"
        Case 9
            myVersion = "2000"
        Case 10
            myVersion = "2002"
        Case 11
            myVersion = "2003"
        Case 12
            myVersion = "2007"
       Case 14
            myVersion = "2010"
        Case Else
            myVersion = "版本不明"
    End Select
    MsgBox "你的Excel是" & myVersion & "版", vbInformation
error1: End Sub
作者: enoch    時間: 2012-5-30 10:54

多謝hsieh版主的經常指教 ,今次更多謝HUNGCHILIN 的補充
作者: enoch    時間: 2012-5-31 17:51

請問我應該如何設定, 不論在03或07版, 都儲存成".xls" 呢
因為個程式在03版使用時,  當預到xlexcel8 就會顯示變數未定義
若果不定義fileformat:= xlexcel8, 07版又會自動儲存成07格式
請指教
作者: HUNGCHILIN    時間: 2012-5-31 21:50

Sub 巨集1()
If Val(Application.Version) >= 12 Then '2007 SAVE
ActiveWorkbook.SaveAs "C:\Users\user\Desktop\活頁簿1.xls", FileFormat:=xlExcel8
Else
ActiveWorkbook.SaveAs "C:\Users\user\Desktop\活頁簿1.xls"
End If
End Sub

路徑自己改一改
作者: enoch    時間: 2012-6-1 09:25

我有試過, 但當在03版執行時,
因為使用咗 Option Explicit 會指
xlExcel8 變數未定議,
除咗取消Option Explicit 外, 有其他方法嗎?
作者: Hsieh    時間: 2012-6-1 15:48

回復 7# enoch
用常數帶入試試
  1. Sub ex()
  2. Dim sf As Long
  3. sf = IIf(Val(Application.Version) <= 11, 51, 56)
  4. ActiveWorkbook.SaveAs Filename:="D:\format.xls", FileFormat:=sf
  5. End Sub
複製代碼

作者: alumi    時間: 2012-6-1 16:54

回復 8# Hsieh


    請問 H 大.
      sf = IIf(Val(Application.Version) <= 11, 51, 56)

     這段程式碼中的 11, 51, 56 ,可否能再解釋一下, 因為剛在 Excel 2010 查到的常數含意如下:
11: xlDBF4
56: xlExcel8
51 : xlOpenXMLWorkbook((開啟 XML 活頁簿?!)

尤其是 11, 56 這兩個常數值的用意為何?
作者: Hsieh    時間: 2012-6-1 20:04

本帖最後由 Hsieh 於 2012-6-1 20:09 編輯

回復 9# alumi
其中11是2003版本的編號
其他2個數值對照下表的FileFormat值
xlWorkbookDefault        51        預設活頁簿
xlExcel8                                56        Excel8
Excel 2010 開發人員參考 > Excel 物件模型參考 > 列舉               
               
XlFileFormat 列舉               
會指定儲存工作表時的檔案格式。               
版本資訊               
新增的版本: Excel 2007               

作者: alumi    時間: 2012-6-1 20:17

回復 10# Hsieh


這樣子,我懂了,原來 51 數值,分別代表下列兩個含意:
   xlOpenXMLWorkbook   51 開啟 XML 活頁簿
   xlWorkbookDefault   51 預設活頁簿

感謝∼∼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)