如何在运行时将代码写入工作表的代码部分

时间:2013-11-04 19:19:52

标签: excel vba excel-vba

我想在运行时将代码写入工作表的代码部分。

我使用“TEXT”数据连接导入数据,此过程将写入新工作表。我希望将数据验证代码写入工作表,以便在最终用户更改工作表上的数据时触发。

为了更加清晰:我想在工作表的代码部分插入一个包含验证代码的文本文件。 我能够弄清楚如何将代码写入表单代码模块,如下所示:

Sub CreateProc_Code()
    Dim VBComp As VBIDE.VBComponent
    Dim CodeMod As VBIDE.CodeModule
    Set VBComp = ThisWorkbook.VBProject.VBComponents("Sheet11")
    Set CodeMod = VBComp.CodeModule
    CodeMod.AddFromFile ("C:\Users\Richard Mertl\Desktop\sheetcode.txt")
End Sub

但是,我正在寻找如何将其嵌入到文件中,而不必引用外部文件。

2 个答案:

答案 0 :(得分:0)

您可以在运行时通过VBA以及手动导入VBA模块。参见:

http://www.rondebruin.nl/win/s9/win002.htm

答案 1 :(得分:0)

您可以使用Worksheet_Change更改事件。

以下是示例代码。如果第2行中的任何值发生更改,则将调用msgbox。您可以在此处编写验证代码。

将代码放在表单代码部分。

Private Sub Worksheet_Change(ByVal Target As Range)

 On Error GoTo err_rout


    Application.EnableEvents = False


    If Target.Row = 2 Then

        MsgBox "something changed"

    End If


err_rout:
    Application.EnableEvents = True
End Sub

enter image description here