0

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

我正在使用“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

但是,我正在寻找如何将它嵌入到文件中,而不必参考外部文件。

4

2 回答 2

0

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

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

于 2013-11-04T19:24:31.040 回答
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

在此处输入图像描述

于 2013-11-04T19:27:14.587 回答