比如:
x="Hello"
daima="MsgBox x"
命令(daima)执行后可以弹出“Hello”.

解决方案 »

  1.   

    Private Sub Command1_Click()
        ScriptControl1.Language = "vbscript"
        ScriptControl1.AddCode "x=""Hello"""
        ScriptControl1.AddCode "msgbox x"
    End Sub
      

  2.   

    你的代码不能执行啊,找不到ScriptControl1对象
      

  3.   

    你这个“命令”是等于运行时再次编译代码,没有这个命令。因该写成子程序调用:Public Sub 命令()
        Dim x As String
        x="Hello"
        MsgBox x
    End SubPrivate Form_Load()
        Call 命令()
    End Sub二、按地址调用能实现类似你要的那种效果(必须使用标准模块否则无法用 AddressOf 取地址):标准模块:Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Sub 命令(ByVal Add As Long)
        CallWindowProc Add,0,0,0,0
    End SubPublic Function GetAdd(ByVal Add As Long) As Long
        GetAdd = Add
    End FunctionPublic Sub MyFunction()
        MsgBox "Hello"
    End Sub
     
    窗体模块:
    Dim daima As LongPrivate Sub Form_Load
        daima=GetAdd(AddressOf MyFunction) '不能将 AddressOf 运算符和赋值运算符一起使用,
                                           '这里通过一个函数取得函数地址。
        Call 命令(daima)
    End Sub'这里按地址调用函数,关键是使用了个用于消息 CallWindowProc  函数,自己上网查一下相关资料吧~~~~
      

  4.   

    Private Sub Command1_Click()
        ScriptControl1.Language = "vbscript"
        ScriptControl1.AddCode "x=""Hello"""
        ScriptControl1.AddCode "msgbox x"
    End Sub
    可以但
      With ScriptControl1
        .Language = "vbscript"
        .AddCode "for x=1 to 3"
        .AddCode "msgbox x"
        .AddCode "next"
      End With
    为什么就不行,还有怎样加变量啊?
      

  5.   

    http://www.china-askpro.com/msg30/qa94.shtml