Xác định phiên bản Excel các bạn đang sử dụng - Check your Excel version

Liên hệ QC

levanduyet

Hãy để gió cuốn đi.
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,798
Được thích
4,704
Giới tính
Nam
Đôi lúc các bạn cần phải kiểm tra phiên bản Excel của người sử dụng trước khi quyết định thực hiện một thao tác nào đó.
Các bạn có thể dùng đoạn mã sau:
Mã:
Select Case Val(Application.Version)
Case Is >= 9 ‘Sử dụng Excel 2000/2002/2003/2007 
Case Is >= 8 ‘Sử dụng Excel 97 
Case Else ‘Sử dụng Excel 5/95
End Select

Chú ý: Đối với Excel 2007 phiên bản tiếng Anh thì
Mã:
Application.Version
Sẽ trả về giá trị 12.0
Nhưng đối với phiên bản Dutch thì sẽ trả về giá trị 12,0.
Chính vì vậy người ta dùng hàm Val để chuyển về giá trị số.
Mã:
Val(Application.Version)
Giá trị trả về khi dùng hàm trên với các phiên bản Excel như sau:
Mã:
Excel   97  = 8
Excel 2000  = 9
Excel 2002  = 10
Excel 2003  = 11
Excel 2007  = 12
Excel 2010  = 14

Thông thường dùng hàm kiểm tra dạng sau: (vì thường từ Excel 2007 trở lên mới có khác nhiều)
Mã:
Sub Test()
    If Val(Application.Version) < 12 Then
        'Excel 97-2003
    Else
        'Excel 2007 trở lên
    End If
End Sub

Nếu các bạn cần phải kiểm tra phiên bản của Excel trong VB6 thì các bạn có thể tham khảo thủ tục Form_Load() sau:

Mã:
Private Sub Form_Load()

    Dim oApp   As Object
    Dim sVersion As String

    On Error GoTo MyError
    Set oApp = GetObject(, "Excel.Application") 
    If TypeName(oApp) = "Nothing" Then
        Set oApp = CreateObject("Excel.Application")
    End If
    Select Case Left$(oApp.Version, InStr(1, oApp.Version, ".") + 1)
    Case "8.0"
        sVersion = "97"
    Case "9.0"
        sVersion = "2000"
    Case "10.0"
        sVersion = "2002"
    Case "11.0"
        sVersion = "2003"
    Case "12.0"
        sVersion = "2007"
    Case "14.0"
        sVersion = "2010"
    Case Else
        sVersion = "Quá củ !"
    End Select
    MsgBox "Excel version: " & sVersion
    Exit Sub

MyError:
    If Err.Number = 429 Then
        Resume Next
    Else
        MsgBox Err.Number & " - " & Err.Description
    End If
End Sub
 
Lần chỉnh sửa cuối:
Kiểm tra việc thiết lập ngôn ngữ trong Windows Regional Settings

Country code - Mã quốc gia
Đôi lúc bạn muốn kiểm tra việc chọn ngôn ngữ trong Windows Regional Settings, các bạn có thể dùng hàm sau:
Mã:
Application.International(xlCountrySetting)
Hàm này sẽ trả về mã quốc giá - Country code, ví dụ 31 là Dutch và 7 là Russian.

Danh sách Country code

Mã:
Language        Country code    Countries/regions 
Ngôn ngữ        Mã quốc gia     Quốc gia/vùng
   -------------------------------------------------------------

   Arabic                966       (Saudi Arabia)
   Czech                 42        (Czech Republic)
   Danish                45        (Denmark)
   Dutch                 31        (The Netherlands)
   English               1         (The United States of America)
   Farsi                 98        (Iran)
   Finnish               358       (Finland)
   French                33        (France)
   German                49        (Germany)
   Greek                 30        (Greece)
   Hebrew                972       (Israel)
   Hungarian             36        (Hungary)
   Indian                91        (India)
   Italian               39        (Italy)
   Japanese              81        (Japan)
   Korean                82        (Korea)
   Norwegian             47        (Norway)
   Polish                48        (Poland)
   Portuguese (Brazil)   55        (Brazil)
   Portuguese            351       (Portugal)
   Russian               7         (Russian Federation)
   Simplified Chinese    86        (People's Republic of China)
   Spanish               34        (Spain)
   Swedish               46        (Sweden)
   Thai                  66        (Thailand)
   Traditional Chinese   886       (Taiwan)
   Turkish               90        (Turkey)
   Urdu                  92        (Pakistan)
   Vietnamese            84        (Vietnam)

Bạn có thể dùng Select case để thực thi đoạn mã bạn muốn như sau:
Mã:
Sub Test1()
    Select Case Application.International(xlCountryCode)
    Case 31: MsgBox "Thực hiện đoạn mã cho Dutch"
    Case 7: MsgBox "Thực hiện đoạn mã cho Russion"
    Case Else: MsgBox "Thực hiện đoạn mã cho English (mặc định)"
    End Select
End Sub
Tham khảo tại đây.
 
ID của ngôn ngữ được sử dụng trong Excel - Language ID of Excel

Nếu muốn biết chính xác ngôn ngữ giao diện của Excel (bởi vì bạn có thể cài đặt nhiều gói ngôn ngữ), bạn có thể dùng hàm sau để trả về ID của ngôn ngữ:
Mã:
Application.LanguageSettings.LanguageID(msoLanguageIDUI)
Để biết ngôn ngữ nào, tương ứng với ID nào, trong cửa số VBA bạn nhấn F2 để mở Object browser và nhập vào msoLanguageID trong trường tìm kiếm. Sau đó nhấn nút search. Bạn sẽ thấy một danh sách dài hiện ra.
Nếu bạn chọn một mục bạn có thể thấy số ở bên dưới của object browser. Ví dụ nếu bạn chọn "msoLanguageIDDutch" bạn sẽ thấy :
Mã:
Const msoLanguageIDDutch = 1043 (&H413)
Tương tự ở trên bạn có thể dùng Select Case để thực hiện ý đồ của bạn:
Mã:
Sub Test2()
    Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
    Case 1043: MsgBox "Run code for Dutch"
    Case 1049: MsgBox "Run code for Russion"
    Case Else: MsgBox "Run code for English (default)"
    End Select
End Sub

Tham khảo tại đây.
 
Web KT
Back
Top Bottom