一个小问题!

hp2003 2003-09-03 08:26:56
窗体上只放置一个textbox和commondbutton,请问怎样才能实现按下commondbutton的时候就执行textbox里面输入的代码?
...全文
42 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
rocket1 2003-09-04
  • 打赏
  • 举报
回复
谢谢
zhuiguo 2003-09-04
  • 打赏
  • 举报
回复
我觉得这是一个无聊的问题,如果真遇到需要处理这种情况时,每个人的方法可能都不太一样,方法很多!
yijiansong 2003-09-04
  • 打赏
  • 举报
回复
学习
射天狼 2003-09-04
  • 打赏
  • 举报
回复
需要自己判断,不能自动执行~~
didishu0807 2003-09-04
  • 打赏
  • 举报
回复
其实实现很简单,只需要调用一个API

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()
Dim res As Boolean
res = ExecuteLine(Text1.Text)
End Sub

在Text1中输入一个例句如:msgbox"欢迎光临!"

执行一下看看效果如何,很方便吧


wumy_ld 2003-09-04
  • 打赏
  • 举报
回复
使用字符串名调用属性和方法


大多数情况下,您可以在设计时发现对象的属性和方法,并且编写代码以处理它们。但是,在少数情况下,您可能不知道某个对象的一些高级属性和方法,或者,您可能只是想要这种灵活性,即允许最终用户在运行时指定属性或执行方法。

例如,请考虑下面的情况,某个客户端应用程序,它通过传递一个运算符到服务器程序来计算由用户输入的表达式。现在,假定您要经常性地向需要新运算符的服务器添加新函数。那么,不幸的是,在客户端应用程序能够使用新的运算符之前,您需要重新编辑和重新发布它。为了避免这种情况,可以使用 CallByName 函数把新运算符当作字符串来传递,而不需要更改应用程序。

CallByName 函数允许您使用一个字符串在运行时指定一个属性或方法。CallByName 函数的用法如下:

Result = CallByName(Object, ProcedureName, CallType, Arguments())

CallByName 的第一个参数包含要对其执行动作的对象名。第二个参数,ProcedureName,是一个字符串,包含将要调用的方法或属性过程名。CallType 参数包含一个常数,代表要调用的过程的类型:方法 (vbMethod)、property let (vbLet)、property get (vbGet),或 property set (vbSet)。最后一个参数是可选的,它包含一个变量数组,数组中包含该过程的参数。

假定您有一个服务器应用程序,MathServer,并且它具有一个新的函数 SquareRoot。该应用程序中有两个 TextBox 控件:Text1 包含要计算的表达式;Text2 用于输入该函数的名称。要对 Text1 中的表达式调用 SquareRoot 函数,您可以在一个命令按钮的 Click 事件中使用下面的代码:

Private Sub Command1_Click()
Text1.Text = CallByName(MathServer, Text2.Text, vbMethod, Text1.Text)
End Sub

如果用户在 Text1 中输入 "64 / 4",在 Text 2 中输入 "SquareRoot",则上面的代码将调用 SquareRoot 函数(要求一个必需的参数,它是一个包含将要计算的表达式的字符串),并且在 Text1 中返回 "4" (16 或64/4的平方根)。当然,如果用户在 Text2 中输入了一个无效的字符串,或者该字符串包含一个属性名而不是方法名,或者该方法要求附加的必需的参数,那么将会产生一个运行时错误。可以猜到,当您使用 CallByName 来预处理这些或其他的错误时,需要添加强健的错误处理程序代码。

尽管 CallByName 函数在某些情况下可能很有用,但是,还是需要在衡量其实用性时考虑对性能可能的影响 — 同后期绑定相比,使用 CallByName 来调用一个过程只会稍稍慢一点儿。如果您正调用的函数将要被重复调用很多次,例如在一个循环内部,则 CallByName 将会对性能产生严重的影响。
wumy_ld 2003-09-04
  • 打赏
  • 举报
回复

CallByName 函数



执行一个对象的方法,或者设置或返回一个对象的属性。

语法

CallByName(object, procedurename, calltype,[arguments()])

CallByName 函数的语法有以下部分:

部分 描述
object 必需的;变体型(对象)。函数将要执行的对象的名称。
procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。
arguments() 可选的:变体型(数组)。


说明

CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。

在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
goodname008 2003-09-03
  • 打赏
  • 举报
回复
' 用API函数:EbExecuteLine
' 窗体中放一个TextBox,放一个CommandButton,在Text中输入代码,单击Command执行
' 在Text中输入的代码最好不要涉及到控件

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()
Dim res As Boolean
res = ExecuteLine(Text1.Text)
End Sub
wumy_ld 2003-09-03
  • 打赏
  • 举报
回复
有很多人问这个问题,似乎没有成功的解决办法。
建议在程序里做很多个函数,然后用一个下拉框把所有函数列出来,当用户单击命令按钮时,用selece case执行相应函数
select case Combo1.Text
case "高斯函数"
call Gaosi()
case "卡门方程"
call Kamen()
...
end select
georgesjz 2003-09-03
  • 打赏
  • 举报
回复
用textbox.text取出字符串,在commondbutton的click事件中用mid()函数取出需要的那个部分的内容,不就可以了?
踏平扶桑 2003-09-03
  • 打赏
  • 举报
回复
试试用定义常量那种方法(仅供参考)
:)
zjcxc 2003-09-03
  • 打赏
  • 举报
回复
VB中这样做好像是不可能的.如果只是简单的内条命令还可以,如果是全部命令,基本上是不可能的.
hp2003 2003-09-03
  • 打赏
  • 举报
回复
比如说在textbox中输入msgbox"欢迎光临!",在commondbutton的click事件中的代码应该怎样写才能执行显示“欢迎光临“这个消息框?
txlicenhe 2003-09-03
  • 打赏
  • 举报
回复
那要看textbox里输入的是怎样的代码。
txlicenhe 2003-09-03
  • 打赏
  • 举报
回复
那样看textbox里是什么代码了。

7,789

社区成员

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

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