umbenennen mehrerer Arbeitsblätter aus Liste mithilfe von VBA
Ich bin neu in VBA und versuche, Namen von Arbeitsblättern aus einer Liste. Ich habe eine Datei mit 133 Arbeitsblätter und wollen die Namen jedes Blatt aus einer Liste in einem der Arbeitsblätter. Die Zellen B1-thru-B133 hat eine Liste mit den gewünschten Namen, in den Zellen c1 bis c133 hat Blattnamen (Blatt1 durch Blatt 133). Ich habe versucht 2 verschiedene codes ohne Erfolg. Was bin ich?
Hier ist ein Auszug von dem, was die Spalten B & C Aussehen.
File details Sheet 1
Sheet Names Sheet 23
Calc Notes Sheet 2
Rank comparison - baseline Sheet 3
Trend - Top 30 ct vs baseline Sheet 5
Trend - Top 30 dur vs baseline Sheet 6
Trend - Top 30 MTBF vs baseline Sheet 7
Trend - Top 30 ct_dur vs base Sheet 8
Avail, MTBeF, MTTR scorecard Sheet 10
Avail, MTBeF, MTTR - Excluded Sheet 11
All-in vs Excluded Sheet 12
Summary all lines - count Sheet 13
Summary all lines - duration Sheet 14
fault - count Sheet 15
fault - duration Sheet 16
gap count-query vs fault sum Sheet 17
gap duration-query vs fault sum Sheet 18
missing faults Sheet 20
query Sheet 9
Prod unit ref Sheet 21
Pd Wk ref Sheet 22
Query ref Sheet 4
FTT Sheet 19
#1 (Laufzeitfehler '424')
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Integer
Dim y As Integer
Dim z As Integer
x = 1
y = 133
For z = 1 To 133
sheetz.Name = Range(Cells(x, 2), Cells(y, 2))
Next z
End Sub
#2 (Laufzeitfehler '91')
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Excel.Worksheet
Dim z As Integer
For z = 1 To 133
If ws.Name = Sheetz Then
Sheetz.Name = Cells(z, 2)
End If
Exit For
Next z
End Sub
Nun, zum einen sehe ich nicht, Sheetz angegebenen Stelle im code. Sie haben es an anderer Stelle definiert?
Nein, habe ich nicht. Ich nahm an, definieren z funktionieren würde. Da Sheetz soll variabel sein, wie sollte Sie definiert werden?
in diesem Fall sollten Sie etwas wie dieses:
warum ist dein code in Worksheet_SelectionChange-Ereignis ??
Nein, habe ich nicht. Ich nahm an, definieren z funktionieren würde. Da Sheetz soll variabel sein, wie sollte Sie definiert werden?
in diesem Fall sollten Sie etwas wie dieses:
Sheets(z).Name = Cells(z, 2)
oder Sheets("Sheet" & z).Name = Cells(z, 2)
warum ist dein code in Worksheet_SelectionChange-Ereignis ??
InformationsquelleAutor user3066783 | 2014-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diesen code statt:
Beachten Sie, dass Ihr
C1:C133
Angebot sollte enthalten Blattnamen ohne Anführungszeichen (korrekt:Sheet1
, uncorrect:"Sheet1"
)Ich habe upd meine Antwort. Versuchen Sie, geben Sie die korrekte Blatt-name in-line -
ThisWorkbook.Workseets("Sheet1").Range("C1:C133")
(ändern"Sheet1"
Blatt-Namen, wo Ihre Daten speichert)Danke nochmals, aber ohne Erfolg. Ich weiß, es ist einfach etwas fehlt mir. Ich aktualisiert meine Frage mit einem Beispiel der Spalten B & C ... in diesem Fall werden die Daten in Blatt 23. Ich habe das ausprobiert und den Namen des Blattes, aber weder gearbeitet. Frustrierend aber danke für Eure Hilfe!
1) sind Sie sicher, dass in Ihrer Spalte
C
richtige Blatt Namen, wieSheet 1
mit Leerzeichen (nichtSheet1
)? 2) versuchen Sie eine Zeile löschenOn Error Resume Next
auf meinen code und welche Nachricht erhalten Sie?Ok, dein code war, wie geschrieben. Vielen Dank für Ihre Geduld. Ich fand ein paar Sachen auf mein Ende ich falsch gemacht habe ... ich war mit CodeName Verweise vs SheetName, und out of order. Alle ist gut jetzt, danke nochmal!
InformationsquelleAutor Dmitry Pavliv
InformationsquelleAutor David
Wahrscheinlich die Sache, die wirft den Fehler
Sheetz
. Der index des Blattes sollte in Klammern d.h.Sheet(z)
InformationsquelleAutor M.Banerjee