VBA Sheet kopieren, namen einblenden und löschen
#1
Hallo
ich habe ein kleines Makro geschrieben welches folgende Aufgabe erledigen soll:

1. Tabelle 1 kopieren
2. Alle Namen im neu kopierten Sheet einblenden
3. Alle namen im neuen Sheet löschen

Leider bekomme ich aktuell noch einen Laufzeitfehler 1004. Das Problem scheint unter Punkt 3 aufzutreten. Wisst ihr woran das liegen könnte?

Danke und Gruß

Code:
Private Sub CommandButton1_Click()
Dim i As Name

'1) Copy active sheet into new Excel file.
Sheets("Tabelle1").Copy
With ActiveWorkbook
End With

'2) Make all names visible within new Excel file.
For Each i In ActiveWorkbook.Names
   i.Visible = True
Next

'3) Delete all names within new Excel file.
For Each defname In ActiveWorkbook.Names
defname.Delete
Next defname

End Sub

Kann das daran liegen dass meine exportierte Datei noch Verknüpfungen zur alten Datei hat?
Antworten Top
#2
Hi,

prüfe vorher, ob es überhaupt was zu löschen gibt.

zum Beispiel:
If Activeworkbook.Names.Count > 0 Then

end if
Antworten Top
#3
Hi

Zitat:prüfe vorher, ob es überhaupt was zu löschen gibt.
Das macht Indirekt die each Schleife schon. Wenn es keine gibt startet die Schleife auch nicht.


Code:
For Each defname In ActiveWorkbook.Names
  ActiveWorkbook.Names(defname.Name).Delete
Next defname

Gruß Elex
Antworten Top
#4
Gut.
Wenn wir dann innerhalb der Schleife 1004 bekommen ist der Grund unter dem Punkt

  • Änderung von Auflistungselementen

    hier nachzulesen.
  • Antworten Top


    Gehe zu:


    Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste