Excel vba删除子代码

时间:2016-03-31 06:08:37

标签: excel vbe

关于VBE。 如果工作表不存在,它将创建它并在Sheet1添加一个命令按钮。它还将添加appr。 private sub commandbutton1_click的代码。 这很好用。这是将添加新子代码的现有代码的一部分:

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

然而,在添加“子代码”之前,它应该检查已经存在的(对象)子代码(对于commandbutton1)是否已经存在,如果是,则在添加新代码之前将其删除。

2 个答案:

答案 0 :(得分:0)

看看下面。

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

答案 1 :(得分:0)

以下适用于我,根据需要更改子名称:

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