辦公自動化編程-網(wǎng)頁填報(bào)人員信息 2DAY (上篇基本語法介紹)
辦公自動化編程-網(wǎng)頁填報(bào)人員信息 2DAY (上篇基本語法介紹)
“共飲一江水 ”我的RPA成長之路 2DAY ?
? ? ? ?今天和大家講解辦公自動化編程-網(wǎng)頁填報(bào)人員信息的程序。簡單的介紹下程序結(jié)構(gòu)和使用了哪些語法和功能。
(源代碼見文章結(jié)尾處的分享鏈接)

????????程序主要執(zhí)行思路如下,為了方便查看,我用文字代替了復(fù)雜的程序,大家先理解程序的主要思路和語法作用后,下載源代碼,上機(jī)跑程序即可。
Dim arrSelItem,objExcelWorkBook,sRet,arrayRet,dictRet,iRet,jsonRet,arrRet,o
Dim 區(qū)域_起始位置,區(qū)域_終止位置,程序執(zhí)行次數(shù)
Dim 員工信息,arr_員工信息
Dim 是否發(fā)送 = 0? ? ???// 通過變量控制程序在測試階段是否點(diǎn)擊發(fā)送按鈕? 0 不發(fā)送? 1 發(fā)送
Dim 坐標(biāo) = [[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 性質(zhì) 7 進(jìn)場日期 8 班組 9 狀態(tài)? 10? 11
/*****************子程序*******************/
Function 移動鼠標(biāo)定位(坐標(biāo)_X,坐標(biāo)_Y)?
? ? Mouse.Move(0, 0, false,{"iDelayAfter": 300, "iDelayBefore": 200})
? ? Mouse.Move(坐標(biāo)_X, 坐標(biāo)_Y, false,{"iDelayAfter": 300, "iDelayBefore": 200})
? ? Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300}) //激活當(dāng)前對話框
End Function
Function 點(diǎn)擊空白處? ?// 消除多選對話框
? ? 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}) //激活當(dāng)前對話框??
End Function
/*****************主子程序*******************/
objExcelWorkBook = Excel.OpenExcel('''E:\Uibot\04-學(xué)習(xí)案例\2022-10-27 人員數(shù)據(jù)錄入(BIM+GIS平臺)\程序試運(yùn)行樣本.xlsx''',true,"Excel","","")
sRet = Dialog.InputBox("","輸入Excel數(shù)據(jù)讀取范圍","B3:N22",false)
TracePrint($PrevResult)
arr_員工信息 = Excel.ReadRange(objExcelWorkBook,"Sheet1",sRet,true)
/***********************************************************************
程序執(zhí)行次數(shù) = 區(qū)域_終止位置? - 區(qū)域_起始位置?
*************************************************************************/
arrRet = Split(sRet,":")
區(qū)域_終止位置 = DigitFromStr(arrRet[1])
區(qū)域_起始位置= DigitFromStr(arrRet[0])
程序執(zhí)行次數(shù) = CInt(區(qū)域_終止位置) - CInt(區(qū)域_起始位置)?
//激活網(wǎng)頁
Window.SetActive(@ui"窗口_項(xiàng)目人員——BIM+GIS智慧建造平臺-搜狗高速瀏覽器1")
//以下程序進(jìn)入循環(huán)執(zhí)行數(shù)據(jù)填報(bào)過程
For i = 0 To 程序執(zhí)行次數(shù) step 1
? ??//錄入數(shù)據(jù) 點(diǎn)擊 新增按鈕
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[0][0],坐標(biāo)[0][1]) //點(diǎn)擊新增
? ??//輸入 個(gè)人信息 (名字、性別....)
? ? //00-姓名
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[1][0],坐標(biāo)[1][1]) //點(diǎn)擊新增
? ? ? ? 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? ? //手動暫停,提升用戶手動選擇 排除問題? ? ? ?
? ? ? ? ? ? ? ? //如果上面幾種情況都沒有出現(xiàn),就彈出一個(gè)對話框,暫停程序,手動選擇對應(yīng)的選
? ? ? ? ? ? ? ? ? ?項(xiàng)后,點(diǎn)擊確定后,繼續(xù)執(zhí)行程序
? ? ? ? End If
? ? //02-民族? ?
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[2][0],坐標(biāo)[2][1]) //點(diǎn)擊新增
? ? ? ? Keyboard.Input(arr_員工信息[i][2],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
??? //03-身份證號
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[3][0],坐標(biāo)[3][1]) //點(diǎn)擊新增
? ? ? ? Keyboard.Input(arr_員工信息[i][3],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
? ? //04-電話
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[4][0],坐標(biāo)[4][1])?
? ? ? ? Keyboard.Input(arr_員工信息[i][4],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
? ? //05-政治面貌?
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[5][0],坐標(biāo)[5][1]) //點(diǎn)擊新增
? ? ? ? TracePrint(arr_員工信息[i][5])
? ? ? ? If arr_員工信息[i][5] = "共產(chǎn)黨員"? ? ?//判斷性別?
? ? ? ? ? ? Mouse.Move(-162, 50, true,{"iDelayAfter": 300, "iDelayBefore": 200})
? ? ? ? ? ? Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
? ? ? ? ElseIf arr_員工信息[i][5] = "共青團(tuán)員"? ? ?//判斷性別??
? ? ? ? ? ? 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? ??//手動暫停,提升用戶手動選擇 排除問題
????????????????//如果上面幾種情況都沒有出現(xiàn),就彈出一個(gè)對話框,暫停程序,手動選擇對應(yīng)的選
? ? ? ? ? ? ? ? ? ?項(xiàng)后,點(diǎn)擊確定后,繼續(xù)執(zhí)行程序
? ? ? ? End If
??? //06-工作性質(zhì)
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[6][0],坐標(biāo)[6][1]) //點(diǎn)擊新增
? ? ? ? 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"})
? ? ? ? 點(diǎn)擊空白處
? ??//07-進(jìn)場日期
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[7][0],坐標(biāo)[7][1])? ? ??
? ? ? ? //在對話框中輸入員工進(jìn)場日期? 日期格式必須是?202X-X-X
? ? ? ? 點(diǎn)擊空白處
? ? //08-班組
? ? ? ? //暫不執(zhí)行
? ??//09-狀態(tài)
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[9][0],坐標(biāo)[9][1])? ???//點(diǎn)擊狀態(tài)按鈕,激活多選對話框
? ? ? ? TracePrint(arr_員工信息[i][9])
????????//對比變量:arr_員工信息[i][9]中的數(shù)據(jù),選擇對應(yīng)的按鈕
? ? //10-考勤
? ? ? ? If arr_員工信息[i][10] = "是"? ? ? ? ??// 如果 變量:arr_員工信息[i][10] = "是" 勾選考勤對話框
? ? ? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[10][0],坐標(biāo)[10][1]) //點(diǎn)擊新增
? ? ? ? End If
? ? //11-關(guān)聯(lián)用戶
? ? ? ? //暫不執(zhí)行
? ? //12-排序
? ? ? ? 移動鼠標(biāo)定位(坐標(biāo)[11][0],坐標(biāo)[11][1])? ? ? ??? //激活序號對話框
? ? ? ? For o = 0 To 3 step 1
????????????????//執(zhí)行4次退格鍵
? ? ? ? Next
? ? ? ? Keyboard.Input(arr_員工信息[i][12],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
? ? ? ? TracePrint(arr_員工信息[i][12])??
? ? // 最有一個(gè)階段? ? ?點(diǎn)擊 確定? 完成信息填報(bào)
? ? ? ? If 是否發(fā)送 = 1? ???? // 是否發(fā)送? 0 不發(fā)送? 1 發(fā)送
????????????????//點(diǎn)擊發(fā)送按鈕
? ? ? ? Else??
????????????????//??關(guān)閉窗口
? ? ? ? End If
Next

????看過程序結(jié)構(gòu),接下來我們一起了解下基本的語法。程序中我使用:
賦值語句
定義變量語句
定義二維數(shù)組
子程序
循環(huán)次數(shù)語句
條件判斷語句
下期我們講解上述語法知識

程序源代碼下載:
鏈接:https://pan.baidu.com/s/1GL3tLUUX5RFabP7Kbx-mOw?
提取碼:zssc?


請大家多多支持我,你們關(guān)注與支持,就是我堅(jiān)持的動力。