VBA对象不支持此属性或方法

我只需要计算一张纸上的区域数量。 我有的代码是:

Sub areas() Dim i As Long i = Worksheets("Sheet2").Selection.Areas.Count MsgBox i End Sub 

但由于某种原因,我收到错误消息“对象不支持此属性或方法”。 我不知道为什么。 这个代码基本上只是从微软网站上复制而来。

我甚至无法得到打印Worksheets("Sheet2").Selection.Areas.Count的立即窗口Worksheets("Sheet2").Selection.Areas.Count部分。

任何快速的帮助? 我正在使用Excel 2010。

谢谢。

对象不支持这个属性或方法。

想想就好像在对象上调用点之后的任何东西。 这就像一个链条。

一个对象是一个类实例。 类实例支持在该类types定义中定义的一些属性。 它暴露VBE告诉你的任何智能感( 有一些隐藏的成员,但它与此无关 )。 所以在每个点之后. 你会感觉到( 白色的下拉 ),试图帮助你select正确的动作

你可以以任何一种方式开始 – 从前到后或从后到前 ,一旦你明白了这个工作方式,你就能够确定问题的发生地点)

在你的代码区域的任何地方input

 Dim a As Worksheets a. 

你可以从VBE获得帮助,这是一个名为Intelli-sense的下拉菜单

在这里输入图像说明

它列出了特定对象暴露给任何用户的所有可用操作 。 您看不到Worksheets()类的.Selection成员。 这正是错误告诉你的。

对象不支持这个属性或方法。

如果你看看MSDN上的例子

 Worksheets("GRA").Activate iAreaCount = Selection.Areas.Count 

它首先activates表,然后调用Selection...它没有连接在一起,因为Selection不是Worksheets()类的成员。 简单地说,你不能在Selection 前缀

关于什么

 Sub DisplayColumnCount() Dim iAreaCount As Integer Dim i As Integer Worksheets("GRA").Activate iAreaCount = Selection.Areas.Count If iAreaCount <= 1 Then MsgBox "The selection contains " & Selection.Columns.Count & " columns." Else For i = 1 To iAreaCount MsgBox "Area " & i & " of the selection contains " & _ Selection.Areas(i).Columns.Count & " columns." Next i End If End Sub 

从这里