分享

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

 Chosefree 2022-02-06

                                                                         来源:按键学院   【按键精灵】

还记不记得,那些天,急着交脚本的时候出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

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多