萬盛學電腦網

 萬盛學電腦網 >> Excel教程 >> excel綜合 >> ExcelVBA引用單元格內字符串型代碼並執行

ExcelVBA引用單元格內字符串型代碼並執行

   單擊Visual Basic工具欄上的安全按鈕,在彈出的安全性對話框中可靠發行商標簽項底下的‘信任對於“Visual Basic 項目”的訪問’前打√。

ExcelVBA引用單元格內字符串型代碼並執行 三聯
ExcelVBA引用單元格內字符串型代碼並執行

  ALT+F11打開VBE編輯器,單擊菜單工具-引用,在彈出的引用-VBAProject對話框中,選擇引用Microsoft Visual Basic 6.0 Extensibility這一項。

ExcelVBA引用單元格內字符串型代碼並執行

  新建一個模塊,命名為:yyzx

ExcelVBA引用單元格內字符串型代碼並執行

  在Sheet1(Sheet1)代碼窗口,粘貼如下代碼:

  Sub 引用單元格字符串型代碼並執行()

  Dim sr, ksh, zh

  On Error Resume Next

  ksh = ThisWorkbook.VBProject.VBComponents("yyzx").CodeModule.ProcBodyLine("yyrgzx", vbext_pk_Proc)

  If Err.Number = 35 Then '判斷yyrgzx過程是否存在

  sr = "Sub yyrgzx()" & vbCrLf & Cells(1, 1) & vbCrLf & "End Sub"

  With ThisWorkbook.VBProject.VBComponents("yyzx").CodeModule

  .AddFromString sr

  End With

  Call 引用

  Else

  With ThisWorkbook.VBProject.VBComponents("yyzx").CodeModule

  ksh = .ProcBodyLine("yyrgzx", vbext_pk_Proc)

  zh = .ProcCountLines("yyrgzx", vbext_pk_Proc)

  .DeleteLines ksh, zh - 1

  End With

  sr = "Sub yyrgzx()" & vbCrLf & Cells(1, 1) & vbCrLf & "End Sub"

  With ThisWorkbook.VBProject.VBComponents("yyzx").CodeModule

  .AddFromString sr

  End With

  Call 引用

  End If

  End Sub

  Sub 引用()

  Call yyrgzx

  End Sub

ExcelVBA引用單元格內字符串型代碼並執行

  利用窗體工具欄上的按鈕,拖拉出一個按鈕,命名為:引用單元格內容執行,指定:“Sheet1.引用單元格字符串型代碼並執行”的宏。

ExcelVBA引用單元格內字符串型代碼並執行

  6查看效果,當A1單元格內容變化時,單擊引用單元格內容執行,將根據A1單元格中字符串代碼執行,從而產生不同效果。

ExcelVBA引用單元格內字符串型代碼並執行
copyright © 萬盛學電腦網 all rights reserved