先读出来,然后像下面这样 在工程中添加“Microsoft Script Control1.0”控件,然后试试下面的代码Private Sub Command1_Click() With Me.ScriptControl1 .AddCode "dim a,b" .AddCode "b=1" .AddCode "a=b+10" .AddCode "Msgbox a" End With End Sub
dim a as interget 象这样的语句估计不可以,一般的执行语句可以用CallByName来间接实现有个办法可以实现,就是改成VBS脚本文件执行
vb没有提供宏替换功能,你的问题在vb里不能解决
多行代码可以 dim a as interget 这种语句可能不行,Microsoft Script Control相当于脚本执行,脚本中只允许Variant这种类型 试试下面的 Option Explicit Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPublic Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0 End FunctionPrivate Sub Command1_Click() ExecuteLine "Dim X As Long, Y As Long" ExecuteLine "x = 2" ExecuteLine "y = 3" ExecuteLine "msgbox " & Text1.Text End SubPrivate Sub Form_Load() Text1.Text = "x+y" End Sub
在工程中添加“Microsoft Script Control1.0”控件,然后试试下面的代码Private Sub Command1_Click()
With Me.ScriptControl1
.AddCode "dim a,b"
.AddCode "b=1"
.AddCode "a=b+10"
.AddCode "Msgbox a"
End With
End Sub
象这样的语句估计不可以,一般的执行语句可以用CallByName来间接实现有个办法可以实现,就是改成VBS脚本文件执行
dim a as interget
这种语句可能不行,Microsoft Script Control相当于脚本执行,脚本中只允许Variant这种类型 试试下面的
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPublic Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End FunctionPrivate Sub Command1_Click()
ExecuteLine "Dim X As Long, Y As Long"
ExecuteLine "x = 2"
ExecuteLine "y = 3"
ExecuteLine "msgbox " & Text1.Text
End SubPrivate Sub Form_Load()
Text1.Text = "x+y"
End Sub