2009-06-30 4 views
8

Trong VB.NET, IntelliSense bật lên ngay sau khi bạn bắt đầu nhập cho bạn một danh sách khá đầy đủ những thứ bạn có thể sử dụng tại thời điểm đó. Tuy nhiên, IntelliSense trong số VBA không khởi động cho đến khi một khoảng thời gian được đặt sau phần bạn đang sử dụng. Ví dụ, tôi đi vào trình soạn thảo VBA trong Excel 2007 và bắt đầu nhập từ "Range" nhưng IntelliSense không xuất hiện cho đến khi tôi nhập "Range." sau đó nó sẽ cung cấp cho tôi danh sách những thứ tôi có thể sử dụng tại thời điểm đó .Có cách nào để nhận đầy đủ IntelliSense cho VBA trong Access và Excel 2007 không?

Có cách nào để làm cho IntelliSense trở nên sớm hơn trong trình soạn thảo VBA, để tôi có thể xem danh sách những thứ có thể được sử dụng như Davg, DCount, v.v ...?

Trả lời

13

Không, nhưng bạn có thể nhập Excel trước tiên. Đặt một khoảng thời gian sau đó, và bạn sẽ tìm hiểu nhiều hơn bao giờ bạn muốn biết về Excel.

Cùng với quyền truy cập. Nhập Access và một khoảng thời gian, và bạn sẽ tìm thấy DCount ở đó.

3

VBA là một con thú khác với .NET vì vậy tôi không chắc chắn làm thế nào để đưa lên IntelliSense nhanh hơn. Tôi thấy tôi có cùng vấn đề mà bạn gặp phải trong năm 2003.

Tôi khuyên bạn nên kiểm tra Trình duyệt đối tượng. Năm 2003, nó là View> Object Browser, hoặc F2, trong VB Editor. Tôi thấy đó là một cách tuyệt vời để khám phá các thư viện lớp học có sẵn. Nó sẽ cho bạn thấy tất cả mọi thứ mà bạn hiện đang tham chiếu và một khi bạn tham khảo thêm nhiều thư viện, chúng cũng sẽ hiển thị trong Object Browser.

27

Chỉ cần nhấn Ctrl + Không gian bất kỳ lúc nào trong trình chỉnh sửa.

+0

Điều này cũng sẽ hoạt động. –

+0

Bạn đã thay đổi cuộc đời tôi mãi mãi. Tôi rất phấn khởi và chán nản cùng một lúc. Tôi đã lãng phí nhiều năm trong cuộc đời mình không biết điều này. – MatthewHagemann

9

Thật không may trong Excel một số đối tượng được khai báo 'Là đối tượng' và đối tượng không có bất kỳ phương pháp nào để Intellisense không thể hiển thị bất kỳ phương thức nào. Thủ phạm chính là Excel.ActiveSheet.

Nếu bạn biết loại thực sự là gì thì bạn có thể khai báo nó một cách rõ ràng và gán nó cho giá trị bạn muốn. EG:

Dim mySheet As Worksheet 
Set mySheet = ActiveSheet  'This line would cause a type mismatch error if mySheet was declared as something other than a WorkSheet 
mysheet.[All The Intellisense For a Worksheet Pops Up] 
+2

'ActiveSheet' cũng có thể là một' Biểu đồ': trong trường hợp đó bạn sẽ nhận được một loại không phù hợp nếu 'mySheet' đã được khai báo là Bảng tính. Đó là lý do tại sao ActiveSheet thuộc loại "đối tượng": nó không phải lúc nào cũng là một WorkSheet ... –

+0

Tôi cũng giả sử điều này áp dụng cho 'ThisWorkbook'. Điều đó có đúng không? – Taelsin