如何在UiPath中表达CurrentRow与CurrentRow+1的条件判断逻辑?
UiPath中Excel相邻行判断逻辑实现方案
场景与需求回顾
- Excel文件A列用于标识产品类型:值为1代表新产品;后续行值为2或≥1时代表相似产品,再次出现1则为新产品。
- 处理规则:
- 若当前行A列=1 且 下一行A列=1:判定为独立产品,需获取当前行C列链接,截图后以「Template 1」粘贴到PPT。
- 若当前行A列=1 且 下一行A列>1:判定为带相似款的产品,需获取当前行C列链接,截图后以「Template 2」粘贴到PPT。
核心判断逻辑的正确写法
你之前的写法错误在于直接对CurrentRow(DataRow对象)进行数值运算,正确的做法是通过行索引定位下一行,再读取对应列的值:
前置准备
- 使用
Read Range活动读取Excel数据到DataTable变量(示例变量名:dtProducts)。 - 在
For Each Row循环内,定义整数变量currentIndex,赋值为:dtProducts.Rows.IndexOf(CurrentRow)
具体判断条件
1. 独立产品判断条件
CInt(CurrentRow("A").ToString) = 1 AndAlso currentIndex < dtProducts.Rows.Count - 1 AndAlso CInt(dtProducts.Rows(currentIndex + 1)("A").ToString) = 1
currentIndex < dtProducts.Rows.Count - 1:避免最后一行时访问下一行导致越界错误AndAlso:短路逻辑判断,提升效率且防止后续错误
2. 带相似款产品判断条件
CInt(CurrentRow("A").ToString) = 1 AndAlso currentIndex < dtProducts.Rows.Count - 1 AndAlso CInt(dtProducts.Rows(currentIndex + 1)("A").ToString) > 1
3. 边界情况处理(最后一行是新产品)
若最后一行A列值为1(无下一行),可单独添加判断逻辑:
CInt(CurrentRow("A").ToString) = 1 AndAlso currentIndex = dtProducts.Rows.Count - 1
可根据需求将其归为独立产品处理。
UiPath操作流程示例
- 拖拽
Read Range活动,配置Excel路径和输出变量dtProducts。 - 拖拽
For Each Row活动,数据源选择dtProducts。 - 在循环内添加
Assign活动,给currentIndex赋值为行索引。 - 添加
If活动,依次设置上述三个判断分支,对应执行截图、PPT粘贴的操作。
内容的提问来源于stack exchange,提问作者Francisco Augusto Varela Aguir
相关产品推荐
相关产品推荐

