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

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

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

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

id id2 status
100 1000 done
100 1001 error
100 1002 done
101 1003 done
102 1004 done
102 1005 done

用户想看到的是这样的

id id2 status
100 1000 done
1001 error
1002 done
101 1003 done
102 1004 done
1005 done

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

扫描二维码关注公众号,回复: 12366830 查看本文章

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

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

invoke VBScript

猜你喜欢

转载自blog.csdn.net/weixin_31808811/article/details/105404187