2013-11-04 41 views
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 

但是,我要找如何嵌入到這個文件,而不必引用外部文件。

+0

http://www.cpearson.com/Excel/vbe.aspx –

+0

我已經通過VBA代碼保存到一個表,然後從加載代碼解決了這個問題串。 – RichM

回答

0

您可以在運行時通過VBA以及手動導入VBA模塊。請參閱:

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

+0

謝謝。但是,這並不能解決我想要在運行時在工作表的代碼部分中導入/插入VB代碼的問題。 – RichM

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

+0

謝謝。我需要能夠在運行時將VB代碼導入/插入此部分。 – RichM

+0

@RichM在運行時導入vb代碼的邏輯是什麼? – Santosh