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

时间:2014-02-04 16:18:24

标签: excel vba

我需要简单地计算一张纸上的区域数量。我的代码是:

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:17)

  

Object不支持此属性或方法。

想想它是否在对象上调用点之后的任何内容。它就像一条链子。

对象是一个类实例。类实例支持在该类类型定义中定义的一些属性。它暴露了VBE告诉你的任何智能感知(有一些隐藏的成员,但它与此无关)。因此,在每个点.之后,您会获得智能(白色下拉列表),以帮助您选择正确的操作

你可以从前到后或从前到后开始,一旦你理解了它是如何工作的,你将能够识别出问题的位置)

在代码区域的任何位置键入此内容

Dim a As Worksheets
a.

你从VBE那里得到帮助,这是一个名为Intelli-sense

的小滴

enter image description here

它列出了特定对象向任何用户公开的所有可用操作。您无法看到.Selection类的Worksheets()成员。这就是错误告诉你的确切内容。

  

Object不支持此属性或方法。

如果你看the example on 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

来自HERE