按键精灵调试三天,气到吐血!!快速开发脚本代码常见错误!绝对干货!

社区服务
高级搜索
猴岛论坛辅助工具按键精灵调试三天,气到吐血!!快速开发脚本代码常见错误!绝对干货!
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
0个回复

[电脑辅助]按键精灵调试三天,气到吐血!!快速开发脚本代码常见错误!绝对干货!

楼层直达
mimi_rice

ZxID:55494225

等级: 上士
举报 只看楼主 使用道具 楼主   发表于: 2014-11-29 0

                          来源:按键学院   【按键精灵】
还记不记得,那些天,急着交脚本的时候出bug了。通宵了三天三夜,调试出错。逻辑检查了一边又一边,万行代码反反复复翻来覆去推敲了无数遍。结果……
不要告诉我是中英文符号写错了,变量定义出错了,我保证不打死我自己……

1:定义变量时直接赋值
报错提示:没有找到合法的符号
//(错误代码0)没有找到合法的符号
Dim a = 1
正确代码:定义变量时不能直接赋值哦~
Dim a
a = 1


2:循环语句未设置循环次数
报错提示:没有找到合法的符号
//第0行:无法计算取值。错误附加码=775:0
For '(错误码0)没有找到合法的符号。
MessageBox a
Next
正确代码:循环语句,需要在for循环后面,加上循环次数哦~不然电脑那么笨……
For 5
        MessageBox a
Next


3:语句书写不全
报错提示:无法计算取值。错误附加码=775:0
//语句书写不全
For i = 0 To 10 step
Next
正确代码:循环语句,在步径step后,需要指定具体的数值:如step 2 ,每次循环结束的时候变量+2;step 1,每次循环结束变量+1。
For i = 0 To 10 step 1        
Next


4:未设置循环条件
报错提示:无法计算取值。错误附加码=775:0
//语法错误:脚本 11-12 ,第21行,第7个字符:(错误码0)没有找到合法的符号。
//语义错误:脚本 11-12 ,第0行:无法计算取值。错误附加码=775:0
While
        
Wend
正确代码:亲,没有定义变量,也没有设置while的循环条件哦(while后面加一个参数:循环条件)
Dim a
a = 1

While a = 1
        
Wend


5:变量名与子程序、子函数重名
报错提示:名称有重复。错误附加码=3102:0
//语义错误:脚本 11-12 ,第60行:名称有重复。错误附加码=3102:0
Dim 找字
Sub 找字()
        
End Sub
正确代码:定义的变量名称,不能与已有的子程序或者子函数重名哦~不然按键无法判断你想调用的是谁~


6:取数组元素下标超出范围
报错提示:下标越界: '[number: 11]'
//脚本 **.Q ,第**行:下标越界: '[number: 11]',
Dim a(9)
MessageBox a(11)
正确代码:在按键精灵中,定义数组时dim a(9),意味着数组a的最大下限是a(9)。而在调用的时候,记得千万不能超过定义的数组下限哦·~~


7:错误类型作大小比较
报错提示:类型不匹配: 'A'
//脚本 11-12.Q ,第37行:类型不匹配: 'A',
Dim a
a = "a"
If a > 1 Then
        MessageBox "a大于1"
End If
正确代码:“If a > 1”,左边是字符串,右边是数值,无法进行比较~若需要将其作比较可先将字符串转换成ANSI代码后比较
Dim a
a = "a"
//得到"a"的ANSI字符代码后作大小比较
If Asc(a) > 1 Then
        MessageBox "a大于1"
End If


8:使用数组未先定义
报错提示:类型不匹配:
//脚本 11-12.Q ,第52行:类型不匹配: 'MYARRAY',
//脚本 11-12.Q ,第53行:类型不匹配: 'A',
W1 = Clng(MyArray(0))
w1=clng(a(1))
正确代码:又是一个调用变量的时候,没有好好定义的忧桑错误:
Dim MyArray(5)
Dim a(5)
W1 = Clng(MyArray(0))
w1=clng(a(1))


9:延时命令不合理
Delay 6000
//上面语句可用下面的限定次数循环语句取代,可解决按停止键停不下来的情况。
For 60
        Delay 100
Next

报错提示:根本停不下来啊啊啊……


10:子程序使用错误
报错提示:无法计算取值。
//脚本 常见脚本错误 ,第66行:无法计算取值。错误附加码=775:120
TracePrint prints("ss")
Sub prints(str1)
        prints = str1
End Sub
正确代码:sub子程序无返回值,若想输出返回值使用Function函数哦~
TracePrint prints("ss")
Function prints(str1)
        prints = str1
End Function
« 返回列表
发帖 回复