VBA Intellisense 仅在第一个句点后显示,在输入第一个句点后不显示级别

VBA Intellisense only showing after the first period and no levels after typing the first

我是 VBA 的新手。我在使用 intellisense 时遇到了问题,但我没有在这里找到任何答案,似乎人们遇到的问题与我的不同。

每当我输入: 文件路径 = ActiveWorkbook.ActiveSheet.Cells(5, 6).Value

它有效——这是一个有效的命令,但我正在努力学习,如果我这样做了:

文件路径 = ActiveWorkbook。

然后 intellisense 出现,ActiveSheet 将在那里。但是如果我放另一个 .在 Active Sheet 之后,其他选项不会出现,这意味着 Cells 不会作为选项出现。所以就好像在第一个 Intellisense 之后没有其他 methods/properties。

但是,如果我要执行以下操作:

将我的工作表调暗为工作表

设置 mysheet = ActiveWorkbook.ActiveSheet

然后我做我的表格。智能感知会为此出现并向我显示 "cells" 和其他选项,但不会显示低于该级别的任何级别。任何帮助,将不胜感激。

ActiveSheet 实际上是 Object,而不是 Worksheet(使用 F2 检查 VBE 中的对象资源管理器)。所以 Intellisense 不知道它是一个 Worksheet,也不知道它有哪些成员。当您将它显式设置为 Worksheet 变量时,它知道变量的类型并可以使用它来确定关联的成员。

ActiveSheet 是一个 Object 因为 Chart 对象也可以有自己的 sheet,如果 Chart sheet 是当前激活,它将是 ActiveSheet 的值。这与 Workbook.WorksheetsWorkbook.Sheets 都存在的原因相同 - 前者仅是 Worksheet 个对象,而后者也可以包含 Chart 个对象。因此,Sheets(1) 也 returns 和 Object,因此键入 ActiveWorkbook.Sheets(1). 也不会触发 Intellisense。