Private Sub Command1_Click() Call String_In("debug.print 1") End SubPrivate Sub String_In(sIn As String) sIn End Sub我想要这段代码在立即窗口打印出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
字符串可以,要这样: 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 也有强人自己写解释器的...
贴错了,字符有换行: Dim s As String s = Chr(34) & "TEST" & vbCrLf & "TEST" & Chr(34) s = "Debug.Print " & s Call String_In(s)
(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
(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
也有强人自己写解释器的...
s = Chr(34) & "TEST" & vbCrLf & "TEST" & Chr(34)
s = "Debug.Print " & s
Call String_In(s)