Private Sub Command1_Click()
        Call String_In("debug.print 1")
End SubPrivate Sub String_In(sIn As String)
        sIn
End Sub我想要这段代码在立即窗口打印出1,有办法可以实现吗,欺骗编译器?还是什么办法?

解决方案 »

  1.   

    Private Declare Function EbExecuteLine Lib "vba6.dll" _
            (ByVal pStringToExec As Long, ByVal Foo1 As Long, _
            ByVal Foo2 As Long, ByVal fCheckOnly As Long) As LongPrivate Sub Command1_Click()
            Call String_In("debug.print 1")
    End SubPrivate Sub String_In(sIn As String)
            Call EbExecuteLine(StrPtr(ByVal sIn), 0, 0, 0)
    End Sub
      

  2.   

    嗯,还有个VBSCRIP控件可以用,但是很不好与原码共享操作~~我记得我的WEGAME有个类似的应用,可以参考下咯~~
      

  3.   

    字符串可以,要这样:    Private Declare Function EbExecuteLine Lib "vba6.dll" _
            (ByVal pStringToExec As Long, ByVal Foo1 As Long, _
            ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long    Private Sub Command1_Click()
            Dim s As String
            
            s = "Debug.Print " & Chr(34) & "TEST" & Chr(34)
            Call String_In(s)
        End Sub    Private Sub String_In(sIn As String)
            Call EbExecuteLine(StrPtr(ByVal sIn), 0&, 0&, Abs(False))
        End Sub
    看要求也可用ScriptControl
    也有强人自己写解释器的...
      

  4.   

    贴错了,字符有换行:    Dim s As String
        s = Chr(34) & "TEST" & vbCrLf & "TEST" & Chr(34)
        s = "Debug.Print " & s
        Call String_In(s)