Löschen von VBA-Code in einem kopierten Arbeitsblatt (Microsoft Excel)
Peter muss regelmäßig ein Master-Arbeitsblatt in eine Kopie in einer neuen Arbeitsmappe kopieren. Er kann das gut mit VBA machen. Dem Arbeitsblatt, das er kopiert, ist jedoch Code zugeordnet, und der Code wird ebenfalls kopiert.
Peter möchte nicht, dass der Code in der Kopie enthalten ist, aber er möchte, dass er im Original verbleibt. Er fragt sich, ob es in seinem Makro eine Möglichkeit gibt, den Arbeitsblattcode im gerade kopierten Arbeitsblatt zu löschen.
Wie Sie vorgehen, hängt davon ab, wie die fertige Arbeitsmappe (die, in die Sie kopieren) aussehen soll. Enthält die fertige Arbeitsmappe in erster Linie Makros – irgendwelche Makros – oder nicht? Wenn die Antwort Nein lautet, enthält sie keine Makros. Sie können die Aufgabe problemlos ausführen, indem Sie die neue Arbeitsmappe im XLSX-Format speichern. Auf diese Weise sorgt Excel dafür, dass alle Makros für Sie entfernt werden. Sie können dies tun, indem Sie beim Speichern Ihrer Arbeitsmappe eine Zeile in Ihren Code einfügen, die der folgenden ähnelt:
ActiveWorkbook.SaveAs FileName:="MyExcelFile.xlsx", _ FileFormat:=xlOpenXMLWorkbook
Wenn Sie jedoch nur den Arbeitsblattcode entfernen möchten, aber die neue Arbeitsmappe mit einem anderen intakten Makrocode speichern möchten, müssen Sie einen anderen Ansatz wählen. In diesem Fall können Sie die folgende Zeile in Ihr Makro aufnehmen:
ActiveWorkbook.VBProject.VBComponents("Sheet1")
Dies setzt voraus, dass die neue Arbeitsmappe die aktive Arbeitsmappe ist und dass das Arbeitsblatt, dessen Code Sie löschen möchten, Sheet1 heißt. Sie können diese Zeilen auch verwenden, um dieselbe Aufgabe auszuführen:
wsName = ActiveSheet.CodeName With ThisWorkbook.VBProject.VBComponents(wsName).CodeModule .DeleteLines 1, .CountOfLines End With
Beachten Sie, dass wsName als Zeichenfolgenvariable deklariert werden sollte.
Für eine Schiffsladung anderer Möglichkeiten, wie Sie verschiedene Codemodule programmgesteuert beeinflussen können, können Sie nichts falsch machen, indem Sie hier auf die hervorragenden Informationen von Chip Pearson verweisen:
http://cpearson.com/excel/vbe.aspx
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (7612) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.