dragon_lzw 2016-09-24 18:37 采纳率: 0%
浏览 957
已结题

VB执行动态代码时变量的作用域问题

小弟一个程序中需要实现动态代码,即在程序运行过程中生成代码,写成字符串,再用ExecuteStatement来执行字符串中的代码,如下所示,测试后发现可以运行,但是里面的变量的值不对,估计是作用域出了问题,如下,在ExecuteStatement “a=5”之后,外面更改了a=3,再运行ExecuteStatement "msgbox a"时a依旧是5,需求是在ExecuteStatement中更改了变量的值,在外面也跟着更改,而在外面更改了变量的值之后也一样,不知道该如何处理,非常感谢!

Private Sub Command1_Click()
Dim a As Integer
Dim ob As Object
Set ob = CreateObject("scriptcontrol")
ob.Language = "VBscript"
ob.ExecuteStatement "a = 5"
a = 3
ob.ExecuteStatement "msgbox a"

  • 写回答

1条回答

  • threenewbee 2016-09-25 16:16
    关注
     http://www.cnblogs.com/rosesmall/archive/2012/11/15/2771585.html
    
    计算带变量的表达式
        Private Sub Command1_Click()
          '执行一条 scripting 语句例子
           x = 10
           ScriptControl1.ExecuteStatement "x=" & x '执行一条 scripting 语句,将值 10 赋给变量 x
           S = ScriptControl1.Eval("(x-1)^2")
           MsgBox S
    
    评论
    1人已打赏

报告相同问题?

悬赏问题

  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线