Ich versuche, an einem Arbeitsblatt zu arbeiten, dessen Name eine Variable ist.Excel VBA - Index außerhalb des Bereichs - Blattname als Variable
Ich habe ein Hauptblatt, genannt "Daten", wo ich gehe, um eine Liste der Namen der vorhandenen Blätter zu fangen.
Mein Code ist wie folgt:
Dim data as Worksheet
dim sheet_name as String
Dim i as Integer
Set data = ThisWorkbook.Sheets("Data")
For i = 2 to 10
sheet_name = data.Range("A"&i).Value
With ThisWorkbook.Sheets(sheet_name)
'Operations on the worksheet
End With
Next i
Der Fehler aufgefordert ist "Runtime Error 9: Subscript Out of Range" für die spezifische Linie:
With This Workbook.Sheets(sheet_name)
Es ist, als ob die Objektblätter habe die Zeichenfolge Blattname nicht verstanden. Das Blatt "Blattname" existiert sicher, ich habe es überprüft.
Leider kann ich das Blatt nicht mit seinem Namen aufrufen, da ich zu viele Blätter zum Bearbeiten habe, deshalb wollte ich eine Schleife machen.
Ich habe versucht, nicht mit der „Mit“ Klausel arbeiten, aber mit „ThisWorkbook.Sheets zu jedem Objekt der Blätter nur mit Bezug (SHEET_NAME) vor, sondern funktioniert auch nicht.
Wissen Sie, wenn es sich um() möglich, ein String-Variable innerhalb eines Sheets zu nennen?
vielen Dank für Ihre Hilfe!
mit freundlichen Grüßen
Es ist möglich, zu tun, was Sie wollen - es sieht aus wie kein Blatt gibt es jedoch den Wert von 'sheet_name' entsprechen. –
Sollte es 'Mit Blattname ... Ende mit' sein? – 0m3r
Ihr Code funktioniert definitiv _provided_ die Liste der Namen auf Blatt 'Data' _exactly_ passen die Blattnamen (sie sind case insensitive). Suchen Sie nach zusätzlichen Leerzeichen am Anfang oder Ende der Namen (sowohl in "Daten" als auch in tatsächlichen Blattnamen). Alle Leerzeichen in 'Data! A2: A10' verursachen ebenfalls diesen Fehler. –