参考答案 综合练习册

综合练习册 · 参考答案

配套练习册(47 题)。做完再看,点开每题看解析。

答案只是"一个正确解",尤其写代码的题往往有多种写法。对不上不要紧,关键是逻辑对不对、有没有在 APA Creator 里跑通。

A 级 · 语法地基

A1创建并赋值"姓名"

看答案
Dim 姓名 = "张三"
姓名 = "张三"      // 也可以不声明直接赋值

A2abc 和 ABC 是两个变量吗?

看答案

错。BotScript 的关键字、变量名、函数名均不区分大小写,abc、ABC、Abc 是同一个变量。

A3四个值的类型

看答案

42 数值型;"42" 字符串型(有引号);True 布尔型;Null 空值型。

A4拼接表达式

看答案
"总计:" & 合计

字符串连接用 &,不是 +。

A5哪些是合法变量名?

看答案

合法:_count、统计、Count。

不合法:2count(首字符不能是数字)、count-1(不能含减号)。另外注意 Count 与 count 是同一个变量。

A6让数量从 3 变 4

看答案
数量 = 数量 + 1

A7字符串只能用双引号?

看答案

错。单引号和双引号都可以,例如 'Laiye' 和 "Laiye" 都合法。

A8常量

看答案

关键字 Const。不能改——常量只能在定义时赋值一次,之后修改会报错。

B 级 · 逻辑控制

B1及格判断

看答案
If 分数 >= 60
    输出调试信息("及格")
Else
    输出调试信息("不及格")
End If

关键:没有 Then。这是最容易按 VB 习惯写错的地方。

B2两个条件同时成立会走几个分支?

看答案

一个——从上往下第一个为真的分支执行,后面的不再检查。

B3两种 =

看答案

a = 3 独立成句时是赋值;If a = 3 里出现在表达式中,是判断相等。

B4输出 1~5

看答案
For i = 1 To 5
    输出调试信息(i)
Next

循环变量 i 不用 Dim 定义。

B5For i = 10 To 1 循环几次?

看答案

0 次。起始值 10 一开始就大于结束值 1,条件不满足,循环体一次都不执行。步长默认为正数 1,所以不会倒着数。

B6后置判断至少几次?

看答案

至少一次。条件写在 Loop 后面,属于后置判断:先执行一遍循环体,再去判断条件。

B7Continue vs Break

看答案

Continue:结束本次循环,直接开始下一轮。
Break:立即跳出整个循环。

B8重试到成功

看答案
Do Until 找到 = True
    重试相关的命令
Loop

等价写法:Do While 找到 = False ... Loop。注意循环里必须有机会让 找到 变成 True,否则就是死循环。

C 级 · 数据容器

C130 的下标

看答案

2。下标从 0 开始:10→0、20→1、30→2。

C2取字典里的 1

看答案
字典["a"]

C3字典的键可以是数字吗?

看答案

不可以。字典的键只能是字符串;值可以是任意类型。

C4遍历名单

看答案
Dim 名单 = ["张三", "李四"]
For Each 名字 In 名单
    输出调试信息(名字)
Next

C5b = a 后改 b,a 会变吗?

看答案

会变。数组/字典赋值只是取别名(引用同一份数据),不是复制副本。想要互不影响,得用"复制"相关命令。

C6文本转数组

看答案

用 分割字符串。属性填:目标字符串 "a,b,c"、分隔符 ","。输出即数组 ["a","b","c"]。

D 级 · Office 三件套

D1Excel 三个概念

看答案

一个文件 = 一个工作簿;包含多个工作表(默认 Sheet1/2/3);一格叫单元格。

D2读取区域的结果结构

看答案

二维数组(外层按行,内层按列)。

D3工作表 0 与单元格 [2,3]

看答案

工作表整数编号从 0 开始,所以第一张是 0。
[2, 3] = 第 2 行第 3 列 = 地址 C2(行列都从 1 开始)。

D4没保存,改动还在吗?

看答案

不在。改动只在内存里。需要把"立即保存"设为"是",或另外调用 保存Excel(或关闭时保存)。

D5写 2×2 区域要什么数据

看答案

二维数组,形如 [["a","b"], ["c","d"]]:外层 2 行,每行长度 2。

D6读取文档能读到什么

看答案

只能读到文字内容。不支持读取文字格式,也不支持读表格状态和图片。

D7模板精确填充三步

看答案

① 模板里在需要填的地方写特殊标记(如 $姓名$);② 用 查找文本后设置光标位置 找到该标记,相对位置选"选中文本";③ 用 写入文字 替换成真实内容。

好处:不依赖行号/字符数,绕开 Word 隐藏格式导致的焦点偏位。

D8SMTP 密码栏填什么

看答案

填授权码。邮箱开启 POP3/SMTP 服务时会生成一串授权码,机器人登录用它;填邮箱原密码会认证失败。

D9POP 删除后还要做什么

看答案

调用 断开邮箱连接,删除才真正生效。(若服务器设置了禁止收信软件删除邮件,则仍删不掉。)

D10POP / IMAP / SMTP 分工

看答案

支持移动邮件的是 IMAP;只负责发邮件的是 SMTP;POP3 只负责收。

E 级 · 网页与元素

E1有目标 / 无目标命令找不到元素时

看答案

有目标:反复查找,超过"超时时间"后抛异常,流程停止。
无目标:不查找也不校验,鼠标/键盘在哪就操作哪,无法验证对错。

E2漏选

看答案

叫漏选。原因通常是元素特征里某个属性会变化(例如单元格文字的 aaname 每次刷新都变)。
修法:把该属性的值改成通配符 *(如 "姓名:*"),或取消勾选该属性。

E3错选

看答案

叫错选。常发生在特征几乎一模一样的兄弟元素之间——剔掉区分属性后,它就找到第一个符合的。

E4为什么错选更危险

看答案

漏选会抛异常、流程立刻停下并报错,容易发现;错选时流程照常往下跑,错误悄无声息,可能产出错误结果也没人知道。

E5界面库共享范围

看答案

同一条流程的不同流程块之间共享;不同流程之间不共享。

E6Chrome 扩展与推荐浏览器

看答案

Chrome 要先安装并启用扩展(Laiye Native Message Plugin),否则只能选到整个页面。

官方更推荐内置的来也浏览器(Laiye Browser):免装扩展、能选取跨域网页元素、可直接调用页面内 JavaScript。

E7比"延时 5 秒"更稳的做法

看答案

用 等待元素(或 判断元素是否存在 配合循环)。
理由:固定延时要么网页快时白等、浪费时间,要么网页慢时还没加载完就操作;等待元素是"元素真出现/真消失"才继续,既稳又快。

F 级 · 找错题

F1多了一个关键字

看答案

多了 Then。BotScript 的 If 不写 Then:

If 分数 >= 60
    输出调试信息("及格")
End If

F2下标越界

看答案

数组只有 3 个元素,合法下标是 0、1、2,没有 3。要取"王五"应写 名单[2]。

F3循环变量用到了循环外

看答案

计次循环的循环变量在循环结束后不能再用。把输出移到循环内,或在循环前自己 Dim 一个计数变量、在循环里累加。

F4别名陷阱

看答案

b = a 只是取别名,两者指向同一份数组,改 b[0] 就是改 a[0],所以输出 99。

想得到独立副本,用数据处理里的"复制"相关命令,而不是直接赋值。

F5累加变量没初始化

看答案

合计 没有初始值,累加结果不可靠(且会有未定义警告)。应先给初值:

Dim 合计 = 0
For Each 天 In 天数
    合计 = 合计 + 天
Next

F6少了 End If

看答案

两个 If 只配了一个 End If。内层也要有自己的结束标记:

If i = 1
    If j = 2
        输出调试信息("都满足")
    End If
End If

F7死循环

看答案

条件永远为真,循环体里既不改变量也没有 Break,流程永远卡住。修法:加 Break,或让条件最终能变成假。

F8拼接用错符号

看答案

字符串拼接要用 &,不是 +:

名称 = "订单" & 编号

若担心数字没被自动转成文字,可先用 转为文字数据 命令转换再拼接。

怎么用结果定位问题

出错集中在说明回去重做
A / B 级语法地基不稳,后面的都会受影响第 3 课 + 第 4 课 + 第 5 课 的上机任务
C 级数组/字典没吃透,Office 部分会跟着错第 6 课
D 级命令属性记不牢,属正常,多查速查页Excel/Word/Email 速查
E 级元素识别靠经验,建议在练习场的虚拟台账上多练第 10 课 + 虚拟台账
F 级错一半以上"读懂了"但"没写熟",正常现象两个综合项目的对应关卡