Ich habe Arbeitsblatt benannt als Wk1, Wk2 Wk3 usw.Dieser Excel-VBA-Code funktioniert nicht. Ich brauche die benannten Bereiche in Formeln
Alle genannten Bereiche auf jedem Blatt haben Namen zu aktualisieren, die mit dem Namen des Blattes beginnen. ZB auf Wk1-Blatt habe ich einen benannten Bereich namens Wk1TotalWeight.
ich habe Formeln, die diese benannte Bereiche auf jeder sheet.eg Referenz = Wk1TotalWeight * 2
Jedes Mal, wenn ich ein neues Arbeitsblatt hinzufügen, mit einem Namen mit Wk beginnen möchte ich die benannten Bereiche in den Formeln auf diesem Blatt zu aktualisieren so dass sie mit dem Namen ihres Elternblatts beginnen. zB wenn eine Formula = Wk1TotalWeight * 2 auf dem Blatt Wk2 ist Ich möchte, dass die Formel auf = Wk2TotalWeight aktualisiert wird * 2
Ich habe diesen Code ausprobiert, aber es funktioniert nicht.
Sub ChangeWkNamesInFormulasOnNewWksheet()
Dim ws As Worksheet
Dim r As Range
For Each ws In Worksheets
If InStr(1, ws.Name, "Wk", 1) > 0 Then
For Each r In ws.Range("C118:I119")
r.Formula = Replace(r.Formula, "Wk1", r.Parent.Name)
Next r
For Each r In ws.Range("C166:J170")
r.Formula = Replace(r.Formula, "Wk1", r.Parent.Name)
Next r
End If
Next ws
MsgBox "Done"
End Sub
Das funktioniert für mich. Sind Sie sicher, dass die Zeichenfolge "Wk1" in C166: J170 gefunden wird? – noumenal
"Immer wenn ich ein neues Arbeitsblatt hinzufüge". Dies könnte ein alberner Vorschlag sein, aber haben Sie den Code vom Editor ausgeführt? – noumenal
Heres, was ich falsch gemacht habe. Ich hatte Blätter Wk1, Wk2 und Wk3 und fügte dann ein Wk4-Blatt hinzu. Ich habe die Formeln vom Wk3-Blatt nach Wk4 kopiert, aber ich habe die Formeln von Wk1 nach Wk4 kopiert. Da ich von Wk3 nach Wk4 kopiert habe, enthielten die Formeln Nmaed-Bereiche beginnend mit Wk3. Deshalb hat der MAcro nicht funktioniert. Danke Noumenal für mich zu denken – frustrationmultiplied