Blue Prism VB代码阶段报错:End of statement expected,求排查
Blue Prism VB代码报错修复方案
核心报错修复
你代码里的SetStageVariable调用存在语法错误,当前写法把参数用逗号拆分到括号外,不符合VB语法规范,导致出现“End of statement expected”错误。
错误代码:
SetStageVariable("SelectedNumbers"), SelectedNumbers
正确写法:
SetStageVariable("SelectedNumbers", SelectedNumbers)
其他需优化的细节
- 显式声明变量:VB默认允许隐式声明,但在Blue Prism中显式声明变量能避免潜在问题,需在初始化部分补充
sum的声明:Dim sum - 处理字符串末尾逗号:循环结束后
SelectedNumbers会多出一个末尾逗号,建议添加逻辑去除:If Len(SelectedNumbers) > 0 Then SelectedNumbers = Left(SelectedNumbers, Len(SelectedNumbers) - 1) End If - 集合类型校验:确保
PositiveCollection是Blue Prism支持的可遍历集合类型(如内置Collection),若为其他类型需调整遍历逻辑。 - 类型匹配检查:确认
NegativeNumber为数值类型,避免运算或拼接时出现类型错误。
修复后的完整代码
' Initialize variables Dim NegativeNumber, PositiveCollection, SelectedNumbers, sum NegativeNumber = GetStageVariable("NegativeNumber") PositiveCollection = GetStageVariable("PositiveCollection") SelectedNumbers = "" ' Sort PositiveCollection in ascending order ' Assuming PositiveCollection is already sorted ' Loop through PositiveCollection For Each num in PositiveCollection ' Calculate sum sum = NegativeNumber + num ' Check if sum >= 0 If sum >= 0 Then ' Add num to SelectedNumbers SelectedNumbers = SelectedNumbers & num & "," ' Update NegativeNumber NegativeNumber = NegativeNumber - num ' Check end condition If NegativeNumber >= 0 Then Exit For End If Next ' Remove trailing comma if exists If Len(SelectedNumbers) > 0 Then SelectedNumbers = Left(SelectedNumbers, Len(SelectedNumbers) - 1) End If ' Output SelectedNumbers SetStageVariable("SelectedNumbers", SelectedNumbers)
内容的提问来源于stack exchange,提问作者PJNI
相关产品推荐
相关产品推荐

