办公自动化编程-网页填报人员信息 2DAY (上篇基本语法介绍)
办公自动化编程-网页填报人员信息 2DAY (上篇基本语法介绍)
“共饮一江水 ”我的RPA成长之路 2DAY
今天和大家讲解办公自动化编程-网页填报人员信息的程序。简单的介绍下程序结构和使用了哪些语法和功能。
(源代码见文章结尾处的分享链接)

程序主要执行思路如下,为了方便查看,我用文字代替了复杂的程序,大家先理解程序的主要思路和语法作用后,下载源代码,上机跑程序即可。
Dim arrSelItem,objExcelWorkBook,sRet,arrayRet,dictRet,iRet,jsonRet,arrRet,o
Dim 区域_起始位置,区域_终止位置,程序执行次数
Dim 员工信息,arr_员工信息
Dim 是否发送 = 0 // 通过变量控制程序在测试阶段是否点击发送按钮 0 不发送 1 发送
Dim 坐标 = [[316, 298],[641, 341],[646,396],[1070,400],[644,458],[1247, 461],[803, 520],[1097, 520],[640, 574],[1247, 580],[612, 635],[674,690]]
//0 新增 1 姓名 2 名族 3 身份证号 4 电话 5 政治面貌 6 性质 7 进场日期 8 班组 9 状态 10 11
/*****************子程序*******************/
Function 移动鼠标定位(坐标_X,坐标_Y)
Mouse.Move(0, 0, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Move(坐标_X, 坐标_Y, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300}) //激活当前对话框
End Function
Function 点击空白处 // 消除多选对话框
Mouse.Move(0, 0, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Move(1333, 457, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300}) //激活当前对话框
End Function
/*****************主子程序*******************/
objExcelWorkBook = Excel.OpenExcel('''E:\Uibot\04-学习案例\2022-10-27 人员数据录入(BIM+GIS平台)\程序试运行样本.xlsx''',true,"Excel","","")
sRet = Dialog.InputBox("","输入Excel数据读取范围","B3:N22",false)
TracePrint($PrevResult)
arr_员工信息 = Excel.ReadRange(objExcelWorkBook,"Sheet1",sRet,true)
/***********************************************************************
程序执行次数 = 区域_终止位置 - 区域_起始位置
*************************************************************************/
arrRet = Split(sRet,":")
区域_终止位置 = DigitFromStr(arrRet[1])
区域_起始位置= DigitFromStr(arrRet[0])
程序执行次数 = CInt(区域_终止位置) - CInt(区域_起始位置)
//激活网页
Window.SetActive(@ui"窗口_项目人员——BIM+GIS智慧建造平台-搜狗高速浏览器1")
//以下程序进入循环执行数据填报过程
For i = 0 To 程序执行次数 step 1
//录入数据 点击 新增按钮
移动鼠标定位(坐标[0][0],坐标[0][1]) //点击新增
//输入 个人信息 (名字、性别....)
//00-姓名
移动鼠标定位(坐标[1][0],坐标[1][1]) //点击新增
Keyboard.Input(arr_员工信息[i][0],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
//01-性别
Mouse.Move(0, 0, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Move(1247, 343, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
TracePrint(arr_员工信息[i][1])
If arr_员工信息[i][1] = "男" //判断性别 男
Mouse.Move(-162, 50, true,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
ElseIf arr_员工信息[i][1] = "女" //判断性别 女
Mouse.Move(-162, 88, true,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
Else //手动暂停,提升用户手动选择 排除问题
//如果上面几种情况都没有出现,就弹出一个对话框,暂停程序,手动选择对应的选
项后,点击确定后,继续执行程序
End If
//02-民族
移动鼠标定位(坐标[2][0],坐标[2][1]) //点击新增
Keyboard.Input(arr_员工信息[i][2],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
//03-身份证号
移动鼠标定位(坐标[3][0],坐标[3][1]) //点击新增
Keyboard.Input(arr_员工信息[i][3],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
//04-电话
移动鼠标定位(坐标[4][0],坐标[4][1])
Keyboard.Input(arr_员工信息[i][4],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
//05-政治面貌
移动鼠标定位(坐标[5][0],坐标[5][1]) //点击新增
TracePrint(arr_员工信息[i][5])
If arr_员工信息[i][5] = "共产党员" //判断性别
Mouse.Move(-162, 50, true,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
ElseIf arr_员工信息[i][5] = "共青团员" //判断性别
Mouse.Move(-162, 88, true,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
ElseIf arr_员工信息[i][5] = "群众" //判断性别
Mouse.Move(-162, 120, true,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
Else //手动暂停,提升用户手动选择 排除问题
//如果上面几种情况都没有出现,就弹出一个对话框,暂停程序,手动选择对应的选
项后,点击确定后,继续执行程序
End If
//06-工作性质
移动鼠标定位(坐标[6][0],坐标[6][1]) //点击新增
TracePrint(arr_员工信息[i][6])
Mage.Hover(@ui"DIV1",{"x":0,"y":0,"width":0,"height":0},{"Pubkey":"gKiqmYD4Tv19DhuceVvKdBcU","Secret":"Kl3ls5qHG5oO0TejoQms0Pm4BF3jh6gQ","Url":"https://cloud.laiye.com/idp"},arr_员工信息[0][6],"instr",1,5000,{"bContinueOnError":true,"iDelayAfter":300,"iDelayBefore":200,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})
点击空白处
//07-进场日期
移动鼠标定位(坐标[7][0],坐标[7][1])
//在对话框中输入员工进场日期 日期格式必须是 202X-X-X
点击空白处
//08-班组
//暂不执行
//09-状态
移动鼠标定位(坐标[9][0],坐标[9][1]) //点击状态按钮,激活多选对话框
TracePrint(arr_员工信息[i][9])
//对比变量:arr_员工信息[i][9]中的数据,选择对应的按钮
//10-考勤
If arr_员工信息[i][10] = "是" // 如果 变量:arr_员工信息[i][10] = "是" 勾选考勤对话框
移动鼠标定位(坐标[10][0],坐标[10][1]) //点击新增
End If
//11-关联用户
//暂不执行
//12-排序
移动鼠标定位(坐标[11][0],坐标[11][1]) //激活序号对话框
For o = 0 To 3 step 1
//执行4次退格键
Next
Keyboard.Input(arr_员工信息[i][12],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
TracePrint(arr_员工信息[i][12])
// 最有一个阶段 点击 确定 完成信息填报
If 是否发送 = 1 // 是否发送 0 不发送 1 发送
//点击发送按钮
Else
// 关闭窗口
End If
Next

看过程序结构,接下来我们一起了解下基本的语法。程序中我使用:
赋值语句
定义变量语句
定义二维数组
子程序
循环次数语句
条件判断语句
下期我们讲解上述语法知识

程序源代码下载:
链接:https://pan.baidu.com/s/1GL3tLUUX5RFabP7Kbx-mOw
提取码:zssc


请大家多多支持我,你们关注与支持,就是我坚持的动力。