Uipath调用Macro(invoke VBA/Execute Macro/invoke VBScript)

RPA项目会根据实际情况半自动或全自动的运行某些process,有时几分钟即可完成,有时需要跑一整天。

作为开发、用户、运维人员不可能盯着RPA运行或者每次都看活动日志(假设大家都很懒,其实实际情况比假设的更懒),RPA需要在运行完当次process后生成report(或者kibana)。复杂的会记录处理了哪些单据,成功率。简单的报告甚至是一封email,告知用户我跑完了,休息去了。

当前项目遇到用户需要看从数据库导出的当次运行情况表,表格是这样的

idid2status
1001000done
1001001error
1001002done
1011003done
1021004done
1021005done

用户想看到的是这样的

idid2status
1001000done
1001error
1002done
1011003done
1021004done
1005done

Uipath是不能直接操作Excel界面的,有什么办法呢?

可以借助其他语言,macro,powershell...

这里我们选了macro,uipath怎么调用macro呢?invoke code!但invoke code不能像在alt+f11窗口里那样省略定义各种变量的语句。所以invoke code就pass了。

好在还有别的,我们发现了invoke VBA,把macro写在bas或txt里(更推荐bas)。Excel application scope标明作业Excel,里面加入invoke VBA,属性里填上路径和方法名,done!

Sub Macro1()
'
' Macro1 Macro
'

'
On Error Resume Next
Application.DisplayAlerts = False

For i = 2 To Range("A65535").End(xlUp).Row //只看A列
If Range("A" & i) <> Range("A" & (i - 1)) Then
     
     
     If i <> 2 Then
            Range("A" & rangeIndex & ":A" & (i - 1)).Select
            With Selection
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
            Selection.Merge
     End If
     rangeIndex = i
End If

Next

    Range("A" & rangeIndex & ":A" & Range("A65535").End(xlUp).Row).Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Application.DisplayAlerts = True
ActiveWorkbook.RemovePersonalInformation = False //关闭Excel自动提示内容还是格式有变的弹框
End Sub

--------------------

Execute Macro

需要放在Excel Application Scope里,Macro代码写在Visual Basic for Application里面。

------------------------------

invoke VBScript

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值