
影刀RPA新手教程变量未定义报错完全指南——为什么说变量不存在那个让我卡了两小时的变量记得我第一次写带循环的流程时被一个变量报错卡了整整两小时。流程逻辑很简单从一个Excel里读10行数据每一行去网页上查东西然后把结果写回Excel。你猜怎么着第一步就报错了。报错信息“变量未定义”。我盯着那条报错看了半天变量什么变量我明明没用到什么变量啊。后来我才明白我不但用了变量用了还不止一个——只是影刀帮我取了名字。这篇文章我用一个Excel读取报变量未定义的案例把所有变量问题讲清楚。案例主线Excel循环读取中变量未定义流程是这样的用打开Excel指令打开一个用户名单用读取Excel行指令读取当前行的用户名列将这个用户名输入到网页搜索框查询结果并写回Excel运行时第二步就报变量未定义。原因我没有先创建一个变量来接收用户名的列值。影刀变量的三种创建方式影刀里变量不是凭空出现的你必须声明它。方式一用设置变量指令。在流程编辑器中拖一个设置变量指令进来。变量名填username变量值可以先填空。然后你后面就可以用username了。方式二指令返回值自动存到变量。店群矩阵自动化突破运营极限你拖一个读取Excel行指令右边的属性面板有个保存到选项。在那个下拉框里选新变量影刀会让你给它命名。如果你这里选了忽略那读出来的值就被扔掉了——后面再用这个值就会报变量未定义。方式三在Python代码块里定义。resultmy_function()# 然后用影刀的获取Python变量指令把result取出来我当时犯的错误就是方式二——“保存到选了忽略”。变量作用域问题即使定义了变量用的时候也可能报未定义。因为变量有作用域。在影刀里变量默认在整个流程里都能用。但如果你在子流程里定义了一个变量主流程是拿不到的。解决方法在影刀中子流程用返回值传数据。子流程编辑完后点右上角设置输出参数设置一个输出变量比如result主流程里调用子流程时保存返回值调用子流程 - 保存结果到变量data这样data就可以在主流程里用了。反过来也一样主流程的变量要传给子流程也是在调用时作为输入参数传递。循环里的变量覆盖问题这是另一个常见的坑。names[张三,李四,王五]foriinrange(len(names)):current_namenames[i]print(current_name)这个代码没问题对吧但在影刀里循环中用设置变量要小心。你必须在循环外先定义变量哪怕赋个空值然后在循环内修改它。不这样做的话每次循环都会重新创建这个变量导致一些奇怪的问题。我习惯这样在循环外设置变量current_cell值为空开始循环 Excel行设置变量current_cell值为当前行的用户名列… 其他操作 …结束循环变量名写错了这是最蠢但最常见的错误。比如你定义了一个变量叫userName后面写成了username。大小写不一样影刀认为这是两个不同的变量。或者你定义的是username后面写成了user_name。解决方法善用影刀的变量面板。在流程编辑器的左边或右边有个变量面板找一下小图标。点开它你能看到当前流程里所有已经定义的变量。用变量时从这里拖进去绝对不会写错。从网页抓取的数据变量未定义这个比较特别。我用获取元素文本指令抓了网页上一个价格。影刀自动把它存到了一个变量里。但当我在下面用这个变量做计算时报错变量未定义。temu店群自动化报活动案例原因获取元素那一步因为网页变化执行失败了被跳过了。失败了当然没有返回值变量没被创建。解决方法在获取元素前加判断。# 伪代码ifelement_exists:priceget_text(element)else:price0# 给一个默认值在影刀里这样做等待元素出现价格元素超时10秒获取元素文本 - 保存到price如果获取失败 - 设置变量price为0安装和工程化规范里的变量管理刚开始写影刀时我随便给变量起名a、b、temp、xxx。后来一个流程里有了几十个变量我自己都分不清哪个是干什么的。现在我有自己的命名规范读Excel的变量叫excel_row_xxx网页抓取的值叫web_xxxPython计算的中间值叫calc_xxx临时变量叫temp_xxx变量多了以后在每个子流程的开头写好注释# 本子流程变量 # excel_price: 从Excel读取的价格数字类型 # web_name: 从网页抓取的商品名字符串 # calc_total: 计算结果数字类型这个习惯让我省了很多排查时间。变量未定义排查三步走第一步在变量面板里搜这个变量名。没搜到就是没定义回到前面补上设置变量。第二步搜到了但报错检查作用域。是不是在子流程里定义的按前面的方法用返回值传出来。第三步看报错位置的前一行。是不是前一步操作失败了执行跳过了导致变量没被赋值如果是给变量写个默认值。关于变量管理和数据类型转换的技巧我更详细地整理在 home.linyan.cloud 上。#影刀RPA #RPA教程 #变量 #数据类型 #错误排查 #新手入门 #Python #流程控制 #Excel操作 #工程规范作者林焱