2016-08-23 53 views
1

我是VBA的新手。我在智能感知方面遇到了問題,但在這裏我沒有找到任何答案,似乎人們有與我不同的問題。VBA智能感知只顯示後的第一個階段,沒有水平後打字第一

每當我鍵入: 文件路徑= ActiveWorkbook.ActiveSheet.Cells(5,6).value的

它works--這是一個有效的命令,但我想學習,如果我這樣做:

Filepath = ActiveWorkbook。

然後intellisense出現,ActiveSheet將在那裏。但如果我把另一個。活動工作表之後,其他選項不會出現,這意味着單元格不會作爲選項提供。所以就好像在第一個Intellisense之後沒有其他方法/屬性。

但是,如果我是做這樣的事情:

暗淡MySheet的工作作爲工作表

設置MySheet的工作= ActiveWorkbook.ActiveSheet

,然後我做MySheet的工作。 intellisense會爲此提出並向我展示「單元格」和其他選項,但不會低於此水平。任何幫助,將不勝感激。

+0

這是因爲Activesheet可能是一個圖表。通過將其聲明爲工作表,您可以爲Intellisense提供更多信息。 –

回答

4

ActiveSheet實際上是Object,而不是Worksheet(使用F2檢查VBE中的對象瀏覽器)。所以Intellisense不知道它是一個Worksheet,並不知道它有什麼成員。當你明確地將它設置爲Worksheet變量時,它知道變量的類型並可以使用它來確定關聯的成員。

Object Explorer

ActiveSheetObject因爲Chart對象也可以有自己的片材,並且如果Chart片當前被激活,這將是ActiveSheet值。這與Workbook.WorksheetsWorkbook.Sheets都存在相同的原因 - 前者僅爲Worksheet對象,而後者也可包含Chart對象。因此,Sheets(1)也返回Object,因此鍵入ActiveWorkbook.Sheets(1).也不會觸發Intellisense。

相關問題