如何实现VB运行过程中动态执行代码?
我想实现这样一个功能:在TEXT中输入一行VB代码(都是赋值语句),然后VB程序就执行这一代码,是否有办法实现?在网上得到这样的代码:PrivateDeclareFunc...
我想实现这样一个功能:在TEXT中输入一行VB代码(都是赋值语句),然后VB程序就执行这一代码,是否有办法实现?
在网上得到这样的代码:
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Command1_Click()
If Text1.Text <> "" Then
Dim Result As Boolean
Result= ExecuteLine(Text1.Text)
End If
End Sub
发现可以执行,但我加了个TEXT2.TEXT,然后执行下面的代码:
a=100
Text2.text=a
执行第二个时报"实时错误 424",请问怎么解决? 展开
在网上得到这样的代码:
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Command1_Click()
If Text1.Text <> "" Then
Dim Result As Boolean
Result= ExecuteLine(Text1.Text)
End If
End Sub
发现可以执行,但我加了个TEXT2.TEXT,然后执行下面的代码:
a=100
Text2.text=a
执行第二个时报"实时错误 424",请问怎么解决? 展开
1个回答
展开全部
VB 关于ExeCuteLine的问题:
实际运用时发现,其只能在VB编辑器中生效,如程序Make成exe文件后就不能使用了。后来我找到一种可以代替其功能的方法。实现如下:
在工程中引入Microsoft Script Control,然后通过其实例的.eval函数可以完成同上的功能。且eval函数还可以返回执行的结果。这点比之ExecuteLine更为方便。
例如
tmpStr = scriptControl1.Eval("1 + 2 > 4") '用一个字符串变量获取eval的执行结果
执行之后tmpStr的值为"false"。
实际运用时发现,其只能在VB编辑器中生效,如程序Make成exe文件后就不能使用了。后来我找到一种可以代替其功能的方法。实现如下:
在工程中引入Microsoft Script Control,然后通过其实例的.eval函数可以完成同上的功能。且eval函数还可以返回执行的结果。这点比之ExecuteLine更为方便。
例如
tmpStr = scriptControl1.Eval("1 + 2 > 4") '用一个字符串变量获取eval的执行结果
执行之后tmpStr的值为"false"。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |