VB 子程序或函数未定义是设置错误造成的,解决方法为:
1、先绘制一个命令按钮,双击命令按钮进入代码窗口。
2、首先定义一个变体变量。
3、输入一个数字,并使用ABS函数。
4、然后写输出Print语句。
5、然后点击按钮测试。
给个思路吧:将
PX = Eval(Eval(Eval(Eval(Y & Chr(47) & Sin(af)) & Chr(42) & Cos(bf)) & Chr(47) & Eval((1.6 & Chr(42) & Sqr(2#)))) & Chr(42) & 100)
写进VBS,然后调用。
'VB
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Sub XXX
'……
open app.path & "\runvbsOutPut.txt" for output as #1
write #1,myeval 'myeval为输入VBS的字符串
close #1
shell app.path & "\runvbs.vbs" '打开VBS文件
sleep 500 '暂停执行0.5秒,让VBS运行完成
open app.path & "\runvbsInPut.txt" for input as #1
Input #1,myevalvalue 'myevalvalue为VBS输出的某东西
close #1
'……
End Sub
'
'
'
'
'
'VBS
'……
Dim myeval,myevaloutput
Open app.path & "\runvbsOutPut.txt" For input as #1
Input #1,myeval
close #1
myevaloutput=eval(myeval)
Open app.path &"\runvbsInPut.txt" For out put as #1
write #1,myevalvalue
close #1
'………………
大概就这样吧
'给你一个自定义计算函数
Function Eval(ByVal Expressions As String) As String
Dim Mssc As Object
Set Mssc = CreateObject("MSScriptControl.ScriptControl")
Mssc.Language = "vbscript"
On Error GoTo EvalErr
Eval = Mssc.Eval(Expressions)
Exit Function
EvalErr:
Exit Function
End Function
'引用方法
PX = Eval(Eval(Eval(Eval(Y & Chr(47) & Sin(af)) & Chr(42) & Cos(bf)) & Chr(47) & Eval((1.6 & Chr(42) & Sqr(2#)))) & Chr(42) & 100)
是ToggleEditMode,这个在这里,程序诊断为子程序或函数!
ToggleEditMode中的程序体应该为界面文本框的所有只读和允许控制两种属性的控制,它通过与ineditmode
进行非(Not)运算。详细面谈
!
VB没有Eval的内部函数,VBScript才有Eval函数