không thể tìm thấy Enum VbFileAttribute trong file xlsm, nhưng trong file xlam thì lại có

Liên hệ QC

minhtungph

None
Tham gia
18/9/13
Bài viết
198
Được thích
78
- Mình có 1 hàm check file có tồn tại hay không ( ở đây không bàn về giải thuật, vì có nhiều cách để làm được việc này).
- Khi mình viết nó trong addin (file xlam), mình click phải lên "vbNormal" chọn "Difinition" thì nó ra hình bên dưới, nhưng khi viết function đó trong file xlsm thì click phải lên "vbNormal" chọn "Difinition" nó lại ko tìm thấy Enum này.
- Mong các bác cho ý kiến về vấn đề này.

Mã:
Public Function FileExists(sPath As String, Optional Atributes As FileAttribute = vbNormal) As Boolean
    FileExists = (Dir(sPath, Atributes) <> "")
    If sPath = vbNullString Then FileExists = False
End Function

1630229342393.png
 
Tôi vẫn thấy mà?
1630230117566.png
 
Upvote 0
- Em đã tìm ra nguyên nhân của vấn đề này, FileAttribute nó là thuộc tính của "Microsoft Scripting Runtime", nên muốn dùng phải tham chiếu đến thư viện đó, còn trong vba muốn sử dụng thì phải đổi thành VbFileAttribute
==> Trường hợp 1: thay FileAttribute -> VbFileAttribute
Mã:
Public Function FileExists(sPath As String, Optional Atributes As VbFileAttribute = vbNormal) As Boolean
    FileExists = (Dir(sPath, Atributes) <> "")
    If sPath = vbNullString Then FileExists = False
End Function
==> Trường hợp 2: Tham chiếu đến: "Microsoft Scripting Runtime" và để code cũ vẫn chạy
Mã:
Public Function FileExists(sPath As String, Optional Atributes As FileAttribute = vbNormal) As Boolean
    FileExists = (Dir(sPath, Atributes) <> "")
    If sPath = vbNullString Then FileExists = False
End Function
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom