VBA-object ondersteunt deze eigenschap of methode niet

Ik moet gewoon het aantal gebieden op een vel tellen. De code die ik heb is:

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

Maar om de een of andere reden krijg ik de foutmelding “Object ondersteunt deze eigenschap of methode niet.” Ik heb geen idee waarom. Deze code is in feite gewoon gekopieerd van de Microsoft-website.

Ik krijg niet eens het directe venster om het gedeelte Worksheets("Sheet2").Selection.Areas.Countaf te drukken.

Snelle hulp? Ik gebruik Excel 2010.

Bedankt.


Antwoord 1, autoriteit 100%

Object ondersteunt deze eigenschap of methode niet.

Zie het alsof er iets na de punt op een object wordt aangeroepen. Het is als een ketting.

Een object is een klasse-instantie. Een klasse-instantie ondersteunt enkele eigenschappen die zijn gedefinieerd in die klassetypedefinitie. Het onthult alles wat intelli-sense in VBE je vertelt (er zijn enkele verborgen leden, maar het heeft hier niets mee te maken). Dus na elke punt .krijg je intelli-sense (die witte vervolgkeuzelijst) die je probeert te helpen de juiste actiete kiezen.

(je kunt op beide manieren beginnen – van voren naar achteren of van achteren naar voren, als je eenmaal begrijpt hoe dit werkt, kun je bepalen waar het probleem zich voordoet)

Typ dit overal in uw codegebied

Dim a As Worksheets
a.

je krijgt hulp van VBE, het is een kleine vervolgkeuzelijst genaamd Intelli-sense

Het bevat alle beschikbare Acties die specifiek object blootstelt aan elke gebruiker. U kunt de .SelectionLid van de Worksheets()Class bekijken. Dat is wat de fout je precies vertelt.

Object ondersteunt deze eigenschap of methode niet.

Als u naar het voorbeeld op MSDN

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

IT activateshet vel eerst en belt u de Selection...Het is niet verbonden, omdat Selectiongeen lid is van Worksheets()klasse. Simply, je kunt Prefix de Selection

Hoe zit het met

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

van hier

Other episodes