-1

关于VBE。如果工作表不存在,它将创建它并在 Sheet1 中添加一个命令按钮。它还将添加 appr。私有子命令button1_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)是否已经存在,如果存在,则在添加新代码之前将其删除。

4

2 回答 2

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
于 2016-09-07T06:53:43.130 回答
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
于 2016-03-31T06:35:33.930 回答