2016-03-31 21 views
-1

VBE ile ilgili olarak. Bir çalışma sayfası yoksa, bunu yaratacak ve bir komut dosyası ekleyin. Ayrıca, appr ekleyecektir. özel alt komutun kodu1_click. Bu her şey yolunda. 'Alt kod', bu ise zaten var olan (nesne) 'de kontrol etmelidir ki (CommandButton1) alt kodu eklemeden önce AncakExcel vba alt kod silme

Dim Code as String 
Code = "Private sub CommandButton1_Click()" & vbCrLf 
[..] 
Code = Code & "End Sub" 

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule 
    .insertlines .CountOfLines + 1, Code 

zaten var: Bu yeni bir alt katacak mevcut kod parçasıdır ve eğer öyleyse, yeni kod eklemeden önce silin.

cevap

0

aşağıda bir göz atın. Gerektiğinde

If ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.CountOfLines <> 0 Then 
    ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.DeleteLines 1, ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.CountOfLines 
End If 
0

benim için şu işleri, alt adını değiştirmek:

Dim VBCodeMod As CodeModule 
Dim StartLine As Long 
Dim HowManyLines As Long 
Set VBCodeMod = Workbooks(1).VBProject.VBComponents("Sheet1").CodeModule 
With VBCodeMod 
    StartLine = .ProcStartLine("Worksheet_BeforeRightClick", vbext_pk_Proc) 
    HowManyLines = .ProcCountLines("Worksheet_BeforeRightClick", vbext_pk_Proc) 
    .DeleteLines StartLine, HowManyLines 
End With