2017-08-28 3 views
2

Ich habe untersucht, wie VBA zum Schreiben von VBA-Code verwendet wird. Damit kann ich letztlich einen Algorithmus schreiben, um Loops abhängig von einer Variablen schreiben zu können.So verwenden Sie VBA zum Schreiben von VBA-Code

Ich bin auf die unten, die aussieht, als ob es Code zum VBA-Projekt hinzufügen wird, aber ich vermisse etwas, damit es funktioniert. Kämpfe darum, etwas dazu zu finden. Ich weiß, dass "ThisWorkbook" das Problem ist. Irgendwelche Ideen dazu, was ich es nennen muss, um auf dieses Blatt (gleicher Name) im VBA-Projekt verweisen zu können.

Dank

Option Explicit 

Sub test() 

Dim WB_Write_Code_Test As Workbook 
Dim WS_Test As Worksheet 
Dim nextline As Long 

Set WB_Write_Code_Test = Workbooks.Open("Write Code Test") 

Set WS_Test = WB_Write_Code_Test.Sheets("Test") 

With ActiveWorkbook.VBProject. _ 
VBComponents(ThisWorkbook).CodeModule 

nextline = .CountOfLines + 1 

.InsertLines nextline, WS_Test.Cells(1, 1).Value 
End With 

End Sub 
+1

Sie könnten ein VBA-Modul schreiben sie dann in der Arbeitsmappe importieren oder den Code in der Konsole erzeugen dann kopieren/einfügen. Ich denke nicht, dass es eine gute Idee ist, VBA-Code zum Schreiben von VBA-Code zu schreiben ... klingt seltsam. – exSnake

+0

Was ist der spezifische Fehler, den Sie haben? Ist 'ThisWorkbook' das gleiche wie' ActiveWorkbook'? –

+0

Also ist die Idee, dass der Code ausgeführt wird und Code abhängig von den Variablen hinzufügen. Ich kann einfach alles löschen und am Ende mit Originalcode ersetzen. (spart mir das Erstellen des Codes und dann kopieren und einfügen und dann laufen?) Das spezifische Problem (denke ich) ist das ThisWorkbook. ThisWorkbook bezieht sich auf das VBA-Projektblatt, in das ich Code schreibe. ActiveWorkbook ist das Excel-Dokument selbst. –

Antwort

1

Dank hat, dass es getan.

Als Referenz der fehlenden Code ist:

VBComponents(ThisWorkbook.CodeName).CodeModule 
Verwandte Themen