ist es möglich, per VBA ein bestimmtes Sub oder sogar ein Modul aus dem VBA Projekt zu entfernen?
vielen Dank & Gruß
Chris
Option Explicit
Private Sub Workbook_Open()
Dim intIndex As Integer, intLine As Integer, intStartLine As Integer, intEndLine As Integer
If ThisWorkbook.CustomDocumentProperties.Count = 0 Then
ThisWorkbook.CustomDocumentProperties.Add Name:="Nr", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=0
End If
ThisWorkbook.CustomDocumentProperties("Nr") = ThisWorkbook.CustomDocumentProperties("Nr") + 1
ThisWorkbook.SaveAs Filename:="Rechnung" & ThisWorkbook.CustomDocumentProperties("Nr")
With ThisWorkbook.VBProject
For intIndex = 1 To .VBComponents.Count
With .VBComponents(intIndex).CodeModule
For intLine = 1 To .CountOfLines
If .ProcOfLine(intLine, 0) = "Private Sub Workbook_Open()" Then
If intStartLine = 0 Then
intStartLine = intLine
Else
intEndLine = intLine
End If
End If
Next
If intStartLine <> 0 Then
.DeleteLines intStartLine, intEndLine - intStartLine + 1
Exit For
End If
End With
Next
End With
End Sub
Um ein Modul oder Sub per Makro in Excel zu entfernen, kannst Du folgenden VBA-Code verwenden. Diese Anleitung bezieht sich auf Excel 2016 oder höher.
ALT + F11
drückst.Public Sub prcRemove()
With Workbooks("Mappe1.xls").VBProject
.VBComponents.Remove .VBComponents("Modul1")
End With
End Sub
Public Sub prcDelete()
Dim intIndex As Integer, intLine As Integer
Dim intStartLine As Integer, intEndLine As Integer
With Workbooks("Mappe1.xls").VBProject
For intIndex = 1 To .VBComponents.Count
With .VBComponents(intIndex).CodeModule
For intLine = 1 To .CountOfLines
If .ProcOfLine(intLine, 0) = "TestMakro" Then
If intStartLine = 0 Then
intStartLine = intLine
Else
intEndLine = intLine
End If
End If
Next
If intStartLine <> 0 Then
.DeleteLines intStartLine, intEndLine - intStartLine + 1
Exit For
End If
End With
Next
End With
End Sub
Fehler: "Der angegebene Vorgang kann nicht abgeschlossen werden."
Fehler: "Das Modul konnte nicht gefunden werden."
Eine alternative Methode, um ein Modul zu löschen, ist die Verwendung von Excel VBA über das Menü:
Hier sind einige praktische Beispiele, die Dir helfen können:
Beispiel 1: Löschen eines Moduls namens "Modul1":
With ThisWorkbook.VBProject
.VBComponents.Remove .VBComponents("Modul1")
End With
Beispiel 2: Löschen eines Subs namens "TestMakro" aus dem aktuellen Modul:
' Code wie oben beschrieben verwenden
On Error Resume Next
-Anweisung, um Fehler während des Löschvorgangs zu ignorieren.Application.DisplayAlerts = False
, um Bestätigungsdialoge beim Löschen von Modulen zu unterdrücken.1. Wie kann ich alle VBA-Module auf einmal löschen? Du kannst eine Schleife verwenden, um alle Module zu durchlaufen und sie einzeln zu löschen.
2. Was passiert, wenn ich ein Modul lösche? Alle darin enthaltenen Subs und Funktionen gehen verloren, daher ist es ratsam, vorher ein Backup zu erstellen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen