2012-04-13 62 views

Trả lời

3

Bạn có thể lặp trên khắp các phiến và sử dụng cú pháp sau:

If ActiveWorkbook.VBProject.VBComponents(sheetName).CodeModule.CountOfLines <> 0 Then 

sheetName là tên của trang tính.

Để sử dụng nâng cao hơn, bạn nên kiểm tra điều này page cung cấp thêm ví dụ nâng cao.

+0

Ummm, điều đó sẽ không hoạt động :) Xem liên kết trong bài đăng của tôi –

+0

Ummm, tôi vừa thử nghiệm nó và nó hoạt động cho tôi (in 0 nếu không có mã và số dòng nếu có một số mã). Tôi có thiếu cái gì khác không? – assylias

+1

Có 2 điều :) 1) Xem chỉnh sửa cuối cùng của tôi trong bài đăng của tôi 2) Nếu bạn có "Yêu cầu tuyên bố biến" được kiểm tra thì số dòng sẽ luôn lớn hơn 0 ngay cả khi không có mã vì nó sẽ có "Option Explicit" trên đầu trang. Tất cả đều được giải thích trong bài đăng trên blog của tôi. –

11

Tôi đã trả lời câu hỏi gần đây trong MSDN và cuối cùng đã viết một bài đăng blog lên đó.

Chủ đề: Kiểm tra xem một file Excel có một Macro

Liên kết: http://www.siddharthrout.com/2012/04/12/check-if-an-excel-file-has-a-macro/

Bạn có thể sau đó sử dụng .VBComponents.Item(i).Name với .VBComponents.Item(i).Type để kiểm tra "Sheets" có "macro" .

EDIT

Về mặt kỹ thuật nói mỗi vĩ mô là một mảnh đang nhưng nó không phải là cần thiết mà tất cả các mảnh đang là một macro. Vì vậy, nếu bạn chỉ kiểm tra các macro thì hãy xem phần đầu tiên của bài đăng trên blog và nếu bạn đang kiểm tra mã nào thì hãy xem phần thứ hai của bài đăng trên blog.

+0

+1 LOL, Vâng, tôi nhớ rằng bài đăng –

+0

+1 cho độ chính xác cao nhất;) – assylias

+0

+1 câu trả lời hay ho Sid – brettdj

Các vấn đề liên quan