我是VBA的新手。我在智能感知方面遇到了麻烦,但我在这里找不到任何答案,似乎人们遇到了与我不同的问题。
每当我输入: FilePath = ActiveWorkbook.ActiveSheet.Cells(5,6).Value
它有效 - 这是一个有效的命令,但我正在努力学习,如果我这样做:
Filepath = ActiveWorkbook。
然后intellisense出现,ActiveSheet将在那里。但是如果我放另一个。在Active Sheet之后,其他选项将不会出现,这意味着Cell不会作为选项出现。所以就像在第一个智能感知之后没有其他方法/属性。
但是,如果我要做的事情如下:
将mysheet作为工作表
进行调暗设置mysheet = ActiveWorkbook.ActiveSheet
然后我做mysheet。 intellisense将为此提出并向我展示“细胞”和其他选项,但不低于此。任何帮助,将不胜感激。
答案 0 :(得分:4)
ActiveSheet
实际上是Object
,而不是Worksheet
(使用F2检查VBE中的对象资源管理器)。所以Intellisense不知道它是Worksheet
,并且不知道它有什么成员。当您将其显式设置为Worksheet
变量时,它知道变量的类型,并可以使用它来确定关联的成员。
ActiveSheet
是Object
,因为Chart
个对象也可以拥有自己的工作表,如果当前激活了Chart
工作表,则其值为{{ 1}}。这与ActiveSheet
和Workbook.Worksheets
都存在的原因相同 - 前者仅为Workbook.Sheets
个对象,后者也可包含Worksheet
个对象。因此,Chart
也会返回Sheets(1)
,因此输入Object
也不会触发智能感知。