前言:

在平时我们的工作中,经常需要使用Uipath自动的导入大量数据到Excel表格中,但是却发现,数据导入到Excel之后,格式却是很乱,基本不能看,就像下图:

而Uipath对Excel的操作非常有限,特别是涉及到调整格式之类操作。今天我就教大家,怎么样通过Uipath调用Excel的VBA脚本实现对Excel表格内数据的美化。也许有不少朋友不知道VBA是什么或者不会写VBA的脚本,这个没关系,今天的文章基本不涉及写VBA脚本,99.9%的工作是通过录制宏来完成的。

需求:

  1. 在表头增加一行,并合并单元格,表头内容是“2009.12月支出欠付表”,字体设置为16号黑体;
  2. 把标题行固定,字体设置为12号黑体;
  3. 表单中的数据都能够完整显示;
  4. 支出欠付总额、收入重量、收入体积进行合计小结;
  5. 所有的数值,显示两位小数等等一系列的操作。

期望的结果如下:

具体操作步骤:

  1. 打开有问题的Excel,如图:

  1. 找到开发工具(若是没有,后面说怎么让他显示出来)

  1. 在第二步点确定后,就按照自己的操作把需求中的项完成,最终形成的结果如下:

  1. 停止录制宏,然后进入到编辑环境:

  1. 把录制的宏修改成函数,增加一个参数,表示对那个工作簿进行操作。开头如图:

结尾把“End Sub”修改成“End Function”,

  1. 写个宏,调用测试一下

  1. 测试运行的结果是OK的,和我们用手工操作是一样的。
  2. 把测试宏删除,然后,把代码导出,保存为FormatCell.bas。

以上是录制宏,下面是建立Uipath工程。

  1. 打开Uipath,并新建流程ExcelFomat。

  1. 拖入一个 “Excel 应用程序范围”的活动:

设置操作的文件,其它不用的参数可以不用设置。

  1. 在“正在处理”中找到“调用应用程序视觉化 Basic”活动,

  1. 设置需要运行的脚本,即刚才我们保存的“FormatCell.txt”文件。方法名称就是“FormatCell”,参数用是工作簿的名称,此处是“Sheet1”,设置后的参数如下所示:

  1. 执行此流程,也可以看到和手工一样的结果。

在本示例的过程中,我们只是对操作的一种情况做了介绍,其它的还有不少方面,在这里没有涉及,比如excel行数,字体设置大小等等。本文也只作抛砖引玉,给大家一个引子。

其它设置:

  1. 调出开发工具
    1. 在文件à选项,弹出Excel选项界面:

    1. 按图中,勾选“开发工具”即可

  1. 宏设置

若是不进行宏设置,用uipath调用excel的vba是调用不成功的。会弹出如下的错误:

因此要进行宏的设置,另外因为excel有比较高的风险威胁,所以在不使用时要把它关闭了。

    1. 在文件à选项,弹出Excel选项界面,然后按图中步骤操作:

    1. 在弹出的“信任中心”界面中,左侧选择“宏设置”选项卡,最初的情况应该如下图所示:

    1. 按下图选择“启用所有宏”和“信任对VBA工程对象模型的访问”

    1. 最后点关闭即可。再次重审,这两个选项有风险,大家使用后,一定要记得关了。
  1. 在调用过程中,若是出现如下错误,则表示函数已经存在,把原来的函数改个名或者删除即可。

结语:

若是大家在操作的过程中,遇到什么问题,可以在评论区给我留言。 也可以关注我的微信公众号:IT人的成长

03 Uipath调用VBA脚本,处理excel文档格式的更多相关文章

  1. Mac OS X将CSV格式转换为Excel文档格式,Excel转CSV中文乱码问题

    一:在Mac上假设你使用Excel打开windows导出的CSV格式文档.你会发现表格中全部的的内容都显示在A列. 那么,怎样恢复正常呢,你能够将CSV格式的文档导入到Excel文档中,这样就正常显示 ...

  2. [转]unity3d 脚本参考-技术文档

    unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...

  3. struts2中利用POI导出Excel文档并下载

    1.项目组负责人让我实现这个接口,因为以前做过类似的,中间并没有遇到什么太困难的事情.其他不说,先上代码: package com.tydic.eshop.action.feedback; impor ...

  4. 【转】ExcelHelper类,用npoi读取Excel文档

    //------------------------------------------------------------------------------------- // All Right ...

  5. C#编程实现Excel文档中搜索文本

    有了在Word文档中编程实现搜索文本的经验,在Excel中实现这个功能也并非难事. 打开Excel的VBA帮助,查看Excel的对象模型,很容易找到完成这个功能需要的几个集合和对象:Applicati ...

  6. word ppt excel文档转换成pdf

    1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...

  7. Asp.net的对Excel文档的导入导出操作

    刚刚初入职场,在休闲的时间写下了项目中用到的对Excel文档操作的方法以及总结,多的不说,直接上代码 public static void CreateExcel(DataSet ds, string ...

  8. Python openpyxl : Excel 文档简单操作

    安装方法 使用 pip 或通过专门python IDE(如pyCharm)进行安装 其中pip安装方法,命令行输入:  pip install openpyxl 基本使用 第一步先是要导入 openp ...

  9. libreoffice python 操作word及excel文档

    1.开始.关闭libreoffice服务: 开始之前同步字体文件时间,是因为创建soffice服务时,服务会检查所需加载的文件的时间,如果其认为时间不符,则其可能会重新加载,耗时较长,因此需事先统一时 ...

随机推荐

  1. python运行报错——注释报错

    本人是IT行业的,从事软件测试,还是个菜鸟.希望大神们多多关照~ 首先,开通这个博客的目的: 1)通常我容易犯一些低级的错误,而且在网上找到解决方法,解决之后时间长了又不记得: 2)想和有共同兴趣的人 ...

  2. 常用的SQL优化

    转自:https://www.cnblogs.com/Cheney222/articles/5876382.html 一.优化 SQL 语句的一般步骤 1 通过 show status 命令了解各种 ...

  3. MSSS攝影大賽計劃書(第三版)

    比賽內容:對香港的城市風景以及自然風光的攝影 預期成果: 提升同學對香港的認識,鼓勵學生走出大學學園去瞭解香港,同時豐富會員的課餘活動,培養同學的興趣愛好 比賽時間:4月1-15日 最後作品提交時間: ...

  4. Coupled model

    常见的coupled models phase English paper WRF-Chem mechanism public data 一些重要的结论 干空气的状态方程 ECWMF驱动WRF 常见的 ...

  5. 最初级的ajax程序

    该文章实现的ajax功能是实现了在<span>上面添加内容 jsp代码 <html><head><title>Ajax</title>< ...

  6. Go语言如何实现单例模式

    单例模式是常见的设计模式,被广泛用于创建数据库,redis等单实例.作用在于可以控制实例个数节省系统资源 特点: 保证调用多次,只会产生单个实例 全局访问 单例的分类 单例模式大致分为2大类: 懒汉式 ...

  7. 吴裕雄--天生自然python学习笔记:Python3 网络编程

    Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络 ...

  8. SQL update 关联更改,内部需要引用表名

    select A.Id,A.Email,( select C.Email from [nopCommerce].[dbo].[Customer] C left join [nopCommerce].[ ...

  9. 关于前端使用JavaScript获取base64图片大小的方法

    base64原理 Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充,输出字 ...

  10. JS数字千分

    JS数字千分: 1.例子:1000--->1,000 2.实现如下: salesToFormat: function (num) { var num = (num || 0).toString( ...