Frage : Code für Programmatically, das VBA vom kopierten Arbeitsbuch nicht richtig arbeitet entfernt

Ich verwendete die Kopieanweisung, ein Blatt von Workbook1 zu Workbook2 zu kopieren.  Ich verwende den angebrachten Code, um das VBA im Modul des Gegenstandes (Arbeitsblatt) des kopierten Blattes zu entfernen.  Kann jedermann mir helfen, zu verstehen, warum der Code nicht das VBComponents erkennt (das Gegen bleibt bei null); obgleich, es 13 Verfahren im Objektmodul gibt.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
Private VorCommandButton5_Click ()
'Makro laufen lassen, um Auszug und außer Empfehlungsblatt als unterschiedliche Excel-Akte auszulösen
'-----------------------------------------------------
'Variablen erklären
'-----------------------------------------------------
    wbNewBook als Arbeitsbuch verdunkeln
    fName als Variante verdunkeln
    sourceWB als Schnur verdunkeln
    DGSSPkgNo als Schnur verdunkeln
    Alarm als Schnur verdunkeln
    Const pw als Schnur = „delpdgsskey“
    
'---------------------------------------------------------
'Variablen für die Speicherung von Kunden-Eingangsinformationen initialisieren
'---------------------------------------------------------
    DGSSPkgNo = Blätter („Projekt-Überschrift-Blatt - PC“). Zellen (7, 3).Value
    fName = „C:\LeanDGSS\“ u. DGSSPkgNo u.“ _LeanWksht_SN "
    
    Application.EnableEvents = falsch
    Auf der Goto- Störung beenden
'*************************************************************
'Den Benutzer für einen Dateinamen auffordern und speichert dann das Arbeitsbuch
'*************************************************************
    Wenn DGSSPkgNo = "" dann
        'Mitteilung definieren
        Alarm = MsgBox („das DGSS Projekt # muss eingeführt werden“ u. _
        vbCrLf u. „in das Projekt-Überschrift-Blatt vor Export“ vbOKOnly „warnend! ")
        
        Application.EnableEvents = richten aus
        Unterseeboot herausnehmen
    Sonst
        ThisWorkbook.Worksheets („empfohlener Lieferant Data_SN“). Kopie
        ActiveWorkbook.SaveAs Dateiname: =fName
    Beenden wenn
    Application.EnableEvents = richten aus
 
'Verfahren Module2 benennen, um VBA Bestandteile zu entfernen
    ActiveWorkbook.Sheets („empfohlener Lieferant Data_SN“). Unprotect pw
    
    Schwaches objDocument als Arbeitsbuch
    objDocument = ActiveWorkbook einstellen
    RemoveAllMacros (objDocument) benennen
    
Unterseeboot herausnehmen
Beenden:
    MsgBox „Störung trat auf: Überprüfen, dass Akte nicht bereits existiert im Aktenweg“
Unterseeboot beenden
'-----------------------------------------------------
Allgemeines VorRemoveAllMacros (objDocument als Gegenstand)

    I als lang, L als lang verdunkeln
    
    Wenn objDocument nichts dann ist, Unterseeboot herausnehmen
    
    I = 0
    Auf Störungs-Zusammenfassung zunächst
    
    I = objDocument.VBProject.VBComponents.Count
    Auf Störung Goto- 0
    
    Wenn i < 1 dann 'kein VBComponents oder geschütztes VBProject
        MsgBox „das VBProject in“ u. objDocument.Name u. _
        „wird geschützt oder keine Bestandteile hat! “, _
        vbInformation, „entfernen alle Makro“
        Unterseeboot herausnehmen
    Beenden wenn
    
    Mit objDocument.VBProject
    Für i = .VBComponents.Count zu 1 Schritt -1
        Auf Störungs-Zusammenfassung zunächst
        .VBComponents.Remove .VBComponents (i)
        'den Bestandteil löschen
        Auf Störung Goto- 0
    Zunächst I
    Ende mit
    
    Mit objDocument.VBProject
        Für i = .VBComponents.Count zu 1 Schritt -1
            L = 1
            Auf Störungs-Zusammenfassung zunächst
            L = .VBComponents (i).CodeModule.CountOfLines
            .VBComponents (i).CodeModule.DeleteLines 1, L
            'freie Linien
            Auf Störung Goto- 0
        Zunächst I
    Ende mit
Enden-Unterseeboot

Antwort : Code für Programmatically, das VBA vom kopierten Arbeitsbuch nicht richtig arbeitet entfernt

Programmatischer Zugang, in der Aussicht:

2003:
Anwendung | Werkzeuge | Makro | Makrosicherheit | verlässliche Quellen | Vertrauens-Zugang zum VBA Gegenstand-Modell… stellen getickt sicher
2007:
Anwendung | Büro-Knopf | APP-Wahlen | Vertrauens-Mitte | Vertrauens-Mitte-Einstellungen | Makroeinstellungen | Vertrauens-Zugang zum VBA Gegenstand-Modell… stellen getickt sicher
Weitere Lösungen  
 
programming4us programming4us