2016-11-10 3 views
0

Ich habe 2 Blätter innerhalb einer Arbeitsmappe. Blatt 1 ist, wo ich das Makro abrufe.Zählen der Anzahl von Reihen in einem nicht-aktiven Blatt

Im Blatt 2 Ich möchte eine Schleife durch die Reihen und print „JA“, wenn es sucsessful war.

Bisher habe ich die folgenden:.

Dim TotalNumRows As Long 
Dim noRow As Integer 
With Sheets("Sheet2") 
'get the amount of rows within Q3 Joiners list 
TotalNumRows = .Range("B" & .Rows.Count).End(xlUp).Row 

.Range("B2").Select 

For userRowNo = 1 To TotalNumRows 

MsgBox ("Yes") 
ActiveCell.Offset(1, 0).Select 
    Next 

End With 

Sein die Menge der Zeilen innerhalb Blatt Berechnung 2, aber ein Fehler auf der‘.Range (‚B2‘) geworfen Select'saying„Select-Methode von Bereich Klasse nicht bestanden“

+0

Die Frage wäre WARUM * würden Sie überhaupt '.Select' etwas brauchen? –

Antwort

1

Sie einen Bereich nur für aktive Arbeitsblätter auswählen können

Sub main() 
    Dim TotalNumRows As Long 
    Dim noRow As Integer 

    With Sheets("Sheet2") 
     .Activate '<-- activate relevant worksheet 
     'get the amount of rows within Q3 Joiners list 
     TotalNumRows = .Range("B" & .Rows.Count).End(xlUp).Row 

     .Range("B2").Select 

     For noRow = 1 To TotalNumRows 
      MsgBox ("Yes") 
      ActiveCell.Offset(1, 0).Select 
     Next 
    End With 
End Sub 
+0

@ user2236280, hast du es geschafft? – user3598756

1

Haben Sie B2 in Sheet2 auswählen möchten? In diesem Fall müssen Sie das Blatt zuerst mit .Activate() aktivieren. Sie können nur Dinge auf dem aktiven Blatt auswählen. Andernfalls entfernen Sie die Zeile.

Im Allgemeinen sind Sie besser dran nicht .Select oder .Activate als VBA beste Praxis aufgrund der Performance-Hits und Schwierigkeiten bei der Fehlersuche verwenden.

Verwandte Themen