请问:VB里有这样功能的函数吗??

Summer006 2005-10-10 12:00:01
就是类似实现js里面的eval功能的函数

比如:
dim pp as long
dim ss as string

pp=95
ss="pp+5"
debug.print XXXX(ss)

要出来100,
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winehero 2005-10-10
  • 打赏
  • 举报
回复
喔,你那个ss为String,那么第二个ExcuteLine句为:
ExecuteLine "Dim ss As String"
winehero 2005-10-10
  • 打赏
  • 举报
回复
Option Explicit

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()
ExecuteLine "Dim pp As Long"
ExecuteLine "Dim ss As long"
ExecuteLine "pp=95"
ExecuteLine "ss = pp+5"
ExecuteLine "debug.print ss"
End Sub
Summer006 2005-10-10
  • 打赏
  • 举报
回复
晕啦。还是不行。不支持变量在里面啊。
只支持常量表达式。。郁闷
Summer006 2005-10-10
  • 打赏
  • 举报
回复
这是找到的答案


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

Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function


Function ReturnCalc(ByVal x As String)As String
Dim Result
ExecuteLine "dim x as double"
ExecuteLine "x= " & x
ExecuteLine "clipboard.settext x"
Result = Clipboard.GetText
ReturnCalc = Cstr(Result)
Set result = Nothing
End Function

Summer006 2005-10-10
  • 打赏
  • 举报
回复
谢谢!!已经从ExecuteLine 找到线索并找到正解。
winehero 2005-10-10
  • 打赏
  • 举报
回复
dim ss as String
'可以这样赋值
ss = 1
winehero 2005-10-10
  • 打赏
  • 举报
回复
ss字符型,pp+5 LONG型,直接赋值系统隐式转换为字符"100"
Summer006 2005-10-10
  • 打赏
  • 举报
回复
好像不对哦。
ss=pp+5 去了。
应该是ss="pp+5"才是啊。 ss的字串值本是个表达式,而我想得到这个表达式的值。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧