键入Worksheets(“ Sheet1”)后,为什么没有出现Intellisense?

时间:2018-09-08 14:44:07

标签: excel vba excel-vba

我理解为什么ActiveSheet不会弹出它,因为它可以返回工作表或图表,因此它不知道要列出哪组属性/方法,但是如果我在工作表中明确引用工作表,集合,为什么不触发Intellisense?

我也想将这个问题扩展到预定义的常量。有时会弹出一个属性的预定义常量列表,但有时却不会。这是为什么?例如:

Application.Calculation = 将触发预定义常量的列表。

Worksheets(“ Sheet1”)。PageSetup.Orientation = 不会触发预定义常量的列表。

谢谢你的回答,伙计们! :)

3 个答案:

答案 0 :(得分:2)

Intellisense需要知道返回的内容,以便为您提供适当的选择。

看看对象浏览器:

  • Application.Calulation返回XlCalculation。您可以通过Intellisense获得选择
  • Worksheets("Sheet1")返回未指定的Object,因为它可以是Worksheet,但不是必须的。这就是Intellisense在此级别上中断的原因。

答案 1 :(得分:2)

如果Excel确切知道您想要什么,则Intellisense可以工作。

如果您在Sub或Function中执行此操作,那么它将起作用。

Dim sh As Excel.Worksheet

Set sh = ThisWorkbook.Worksheets("DUMMY")

sh.PageSetup.Orientation = here comes the Intellisense 

Set sh = Nothing

答案 2 :(得分:1)

如果将每个对象声明为变量并向程序说明对象的类型,则Intellisense将正常工作。

请参阅以下示例。 Intellisense不适用于图表(1),工作表(“ Sheet1”),单元格(1、1)。 但是Ws,rng,myChart都可以。

Sub test()
    Dim Ws As Worksheet
    Dim rng As Range
    Dim myChart As Chart

    Set myChart = Charts(1)
    Set Ws = Worksheets("Sheet1")
    Set rng = Cells(1, 1)


End Sub