Tôi đã từng viết không biết bao nhiêu lần về cái này.Nếu bạn đang học VBA thì không cần đến những câu hỏi đơn lẻ thế này.
Mà hãy vào Object Browser của VBA để tìm và học.
Cám ơn a nhưng cái khó nhất vẫn chưa giải quyết được đó là khi mo file xlam ko phải addin khởi động cùng excel thì làm sao lấy được tên của nóĐơn giản là vầy thôi:
For Each O In Application.Workbooks
Debug.Print O.Name
For Each O In Application.Addins
Debug.Print O.Installed, O.Name
Nếu bạn đang học VBA thì không cần đến những câu hỏi đơn lẻ thế này.
Mà hãy vào Object Browser của VBA để tìm và học.
Chẳng hạn như phân lớp:
Application hoặc Document (Word) là lớp lớn nhất của Ứng dụng Excel. (Excel là thư viện chứa Application hoặc Word là thư viện chứa Document )
Lớp con của Application ví dụ có Workbooks
Quy cách đặt tên: có chữ "s" sau thì nó là một nhánh chứa nhiều đối tượng con khác.
Vì vậy ta có thể xử dụng:
Workbooks(1) hoặc Workbooks("a.xlsx") Hoặc For Each .. In ...
Và Workbook lại chứa nhiều Worksheets
Khai báo biến nhận từng đối tượng thường thì bỏ "s", nếu không xem Object Browser thì rất khó biết khai báo sớm
nếu quy cách đặt có khác.
Dim WB As Workbook 'hoặc Application.Workbook thường thì các Khai báo sớm thì không cần viết lớp "Lớn nhất của một khối lớp"
Chỉ khi khai báo thư viện thì mới Dim WB As Workbook
Chưa có thư viện thì phải là Dim WB As Object '(Khai báo chung cho mọi đối tượng) hoặc Dim WB (Khai báo chung hơn nhưng trừ gán với Type)
Application.Workbook chính là lớp (Class Module) con trong lớp cha Application (Class Module)
Để viết code trong VBA nhanh thì gõ kí tự sau đó Ctrl + Space để được gợi ý, để đi đến lớp con thì gõ dấu chấm (.).
Sao bạn không nghe tôi nói cái vụ phím tắt vậy, chỉ dẫn thì phải thực hành chứ.
Gõ "App" Ctrl + Space Chọn Application Gõ ".Ad" Ctrl + Space Sẽ thấy lớp con của nó.
For Each o In Application.AddIns2
Debug.Print o.Installed, o.Name
Next
Sao bạn không nghe tôi nói cái vụ phím tắt vậy, chỉ dẫn thì phải thực hành chứ.
Gõ "App" Ctrl + Space Chọn Application Gõ ".Ad" Ctrl + Space Sẽ thấy lớp con của nó.
For Each o In Application.AddIns2
Debug.Print o.Installed, o.Name
Next
Sao bạn không nghe tôi nói cái vụ phím tắt vậy, chỉ dẫn thì phải thực hành chứ.
Gõ "App" Ctrl + Space Chọn Application Gõ ".Ad" Ctrl + Space Sẽ thấy lớp con của nó.
For Each o In Application.AddIns2
Debug.Print o.Installed, o.Name
Next
em đã thử vẫn không đượcVậy thì bạn thử cái đoạn này nếu không được thì gửi file LabX.xlam của bạn lên.
CreateObject("Excel.Application").AddIns2
dậy có cách nào để lấy được tất cả các tên vbaproject(filename) không anh ?File này là của thaipv, file đã được mã hóa, nên nó phải là file Excel thuần.
Nếu File này người viết cố ý nén mã độc thì 1000% rủi ro cho máy tính của bạn.
Lưu ý khi sử dụng.
File trên được mã hóa dựa trên MS-OFFCRYPTO bởi microsoft.
Application.VBE.VBProjectsdậy có cách nào để lấy được tất cả các tên vbaproject(filename) không anh ?
quan trọng là cái file name sau tên vbproject đó aApplication.VBE.VBProjects
ok đã giải quyết xong ! thank anh rất nhiềuXin lỗi bạn, trợ giúp có giới hạn, đã nói rõ ở bài trước, việc còn lại là của bạn.