- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,706
- 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:
Chú ý: Đối với Excel 2007 phiên bản tiếng Anh thì
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ố.
Giá trị trả về khi dùng hàm trên với các phiên bản Excel như sau:
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)
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:
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
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)
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: