Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit For Schleife

Probleme mit For Schleife
28.07.2004 10:37:33
Frankk
Hallo zusammen,
ich habe folgendes Problem. Ich durchsuche alle Arbeitsbätter einer Mappe
For Each objBlatt In ActiveWorkbook.Worksheets
NExt
Anschließend will ich das ganze nocheinmal machen. Wieder mit
For Each objBlatt In ActiveWorkbook.Worksheets
NExt
Also direkt zweimal hintereinander.
Dann kommt aber immer die Fehlermeldung:
"Laufzeitfehler 438, Objekt unterstützt die Eigenschaft oder Methode nicht"
Woran liegt denn das?
Gruß
Frank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit For Schleife
Reinhard
Hi Frank,
an
For Each objBlatt In ActiveWorkbook.Worksheets
NExt
liegt das nicht, poste mal den ganzen Code und benenne die Stelle wo der Fehler auftritt.
Gruß
Reinhard
AW: Probleme mit For Schleife
Frank
Hallo,
hier mal der Ausschnitt:
Sub suchen
'Prüfen, ob Katalogblatt bereits existiert
Set objSuchKatalogblatt = GetWorksheet(ZuSuchenderBegriffSuchkatalogblattName)
'Wenn SuchKatalogblatt nicht existiert, dann...
If objSuchKatalogblatt Is Nothing Then
'Hier wird nochmal geprüft, ob es bereits ein Suchkatalogblatt mit dem Namen gibt, der gerade
'aktuell angelegt werden soll, weil Excel nicht zwischen Groß-und Kleinschreibung bei
'Tabellenblattnamen unterscheidet.
'Es werden alle Tabellenblätter der Arbeitsmappe durchlaufen
For Each objBlatt In ActiveWorkbook.Worksheets
'Wenn der Tabellenblattname nicht "Übersicht" ist....
If objBlatt.Name "Übersicht" Then
'Wenn die ersten fünf Buchstaben des Tabellenbatt-Namens "Such_" sind...
If Left(objBlatt.Name, 5) = "Such_" Then
Vergl = StrComp(objBlatt.Name, ZuSuchenderBegriffSuchkatalogblattName, 1)
'Wenn es bereits einen Tabellenblattnamen mit der Zeichenfolge gibt...
If Vergl = 0 Then
ZuSuchenderBegriffSuchkatalogblattName = ZuSuchenderBegriffSuchkatalogblattName & "(" & x & ")"
Exit For
End If
End If
End If
Next
'Nun wird nachgesehen, ob nicht vielleicht schon zwei Blätter bestehen mit der
'gleichen Zeichenfolge bestehen
'Es werden alle Tabellenblätter der Arbeitsmappe durchlaufen
For Each objBlatt In ActiveWorkbook.Worksheet '******Hier tritt der Fehler auf*****
'Wenn der Tabellenblattname nicht "Übersicht" ist....
If objBlatt.Name "Übersicht" Then
'Wenn die ersten fünf Buchstaben des Tabellenbatt-Namens "Such_" sind...
If Left(objBlatt.Name, 5) = "Such_" Then
Vergl = StrComp(objBlatt.Name, ZuSuchenderBegriffSuchkatalogblattName, 1)
If Vergl = 0 Then
x = x + 1
ZuSuchenderBegriffSuchkatalogblattName = ZuSuchenderBegriffSuchkatalogblattName & "(x)"
End If
End If
End If
Next
End Sub

Private Function GetWorksheet(strName As String) As Worksheet
Dim objBlatt As Worksheet
'Alle Blätter der aktuelle Arbeitsmappe durchlaufen
For Each objBlatt In ActiveWorkbook.Worksheets
'Wenn Blatt mit angegebenem Namen gefunden, dann...
If objBlatt.Name = strName Then
'... Verweis auf Blatt zurückliefern
Set GetWorksheet = objBlatt
'Schleife verlassen
Exit For
End If
Next
End Function

Anzeige
da fehlt ein s an WorksheetS
Reinhard
Hi Frank,
und schreib sub suchen() , dann erkennt die Software hier, dass es Code ist und rückt ihn ein, wie bei der Function. So ist das doch unleserlich.
gruß
reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige