@hzl201
2018-07-04T09:07:51.000000Z
字数 21867
阅读 9387
按键精灵
自动
明确目标,在最短的时间内录入尽可能多的有效数据。人工容易出错,执行效率也不高,重复性的工作都交给机器进行处理,先写出手动步骤,再用脚本实现半自动化,最后实现全自动化。人工只进行数据有效性的检查。在实际运用过程中不可能只使用一个脚本实现全部功能,可以分拆成多个脚本灵活调整。
用脚本语言对人工录入数据的步骤进行重现,并一直执行下去。
分析录入过程-分解为循环体-手动执行循环体-使用工具编写循环体脚本-调试脚本-适配和发布
先检查是否可分解为循环体:
有规律、可重复、可定位才能循环执行
循环体执行流程,最小单元化每个步骤。
按流程大致分为三个部分:
1.格式化源数据:先进行excel表的预处理,减少每个表结构不同造成的兼容性问题
2.获取源数据:定位到初始位置,按行或列进行读取,并存储到缓存中
3.填充数据:切换到目标页面,定位到初始位置,进行填充
人工检查录入数据的有效性,决定是否重新执行脚本
按照步骤执行,找到最不容易出错的步骤,记录下关键点,执行完以后要求能定位到下一个源数据和下一个目标页面
按照手动步骤进行重建,不要进行录制,那是无效的,每一步都写好注释
原则
1.尽量都用快捷键进行操作
2.能找点别找图
3.合理设置延迟时间
4.尽量避免死循环
选择语言 我这里使用按键精灵进行脚本的编写,其它的语言大同小异。
反复修改参数,先实现功能,再谈优化效率和冗余检查,并进行迁移适配。
重复的代码可以封装为子程序模块,再进行调用,若每次执行时只有少数代码不同,可加循环并判断。
录入精煤库存
//先打开xls和chrome,xls搜索累计,chrome搜索备注
Dim a,a1,a2,a3,a4,a5,a6,aa
//但只是复制为字符串,未赋值为变量的数值
a=""
a1 = 0
a2 = 0
a3 = 0
a4 = 0
a5 = 0
a6 = 0
aa = 0
Call Plugin.Sys.SetCLB(a) //清空剪切板
Delay 500
MoveTo 939, 473
LeftClick 1 //鼠标点击煤场库存
Delay 200
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1//ctrl+f
Delay 200
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到累计
Delay 200
MoveTo 78, 663//点击左下角的累计
LeftClick 1
Delay 200
KeyPress "Right", 3 //找到混煤数据
Delay 200
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 200
a2 = Plugin.Sys.GetCLB()//获取剪切板的数据
Delay 50
Delay 100
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1//ctrl+f
Delay 100
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到累计
Delay 100
MoveTo 78, 663//点击左下角的累计
LeftClick 1
Delay 100
KeyPress "Right", 3 //找到精煤数据
Delay 100
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 100
a1 = Plugin.Sys.GetCLB()//获取剪切板的数据
Delay 50
Delay 100
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1//ctrl+f
Delay 100
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到累计
Delay 100
MoveTo 78, 663//点击左下角的累计
LeftClick 1
Delay 100
KeyPress "Right", 3 //找到洗混煤数据
Delay 100
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 100
a3 = Plugin.Sys.GetCLB()//获取剪切板的数据
Delay 50
Delay 100
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1//ctrl+f
Delay 100
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到累计
Delay 100
MoveTo 78, 663//点击左下角的累计
LeftClick 1
Delay 100
KeyPress "Right", 3 //找到煤泥数据
Delay 100
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 100
a4 = Plugin.Sys.GetCLB()//获取剪切板的数据
Delay 50
Delay 100
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1//ctrl+f
Delay 100
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到累计
Delay 100
MoveTo 78, 663//点击左下角的累计
LeftClick 1
Delay 100
KeyPress "Right", 3 //找到混块煤数据
Delay 100
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 100
a5 = Plugin.Sys.GetCLB()//获取剪切板的数据
Delay 50
Delay 100
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1//ctrl+f
Delay 100
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到累计
Delay 100
MoveTo 78, 663//点击左下角的累计
LeftClick 1
Delay 100
KeyPress "Right", 3 //找到矸石数据
Delay 50
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 100
a6 = Plugin.Sys.GetCLB()//获取剪切板的数据
Delay 50
Delay 100
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 300
MoveTo 526, 675
Delay 100
LeftClick 1//点击备注后面的方框
Delay 100
KeyPress "Tab", 1 //定位到精煤日销量
Delay 300
Call Plugin.Sys.SetCLB(a1) //将数据写入剪切板
Delay 300
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 300
KeyPress "Enter", 1 //下一个
Delay 300
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板
Delay 300
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 300
KeyPress "Enter", 1 //下一个
Delay 300
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板
Delay 300
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 300
KeyPress "Enter", 1 //下一个
Delay 300
Call Plugin.Sys.SetCLB(a4) //将数据写入剪切板
Delay 300
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 300
KeyPress "Enter", 1 //下一个
Delay 300
Call Plugin.Sys.SetCLB(a5) //将数据写入剪切板
Delay 300
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 300
KeyPress "Enter", 1 //下一个
Delay 300
Call Plugin.Sys.SetCLB(a6) //将数据写入剪切板
Delay 300
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 1000
MoveTo 18, 263
Delay 500
LeftClick 1//提交
Delay 500
MoveTo 511, 290
LeftClick 1 //点击上一日
Delay 500
Delay 150
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到excel
Delay 150
MoveTo 29, 693 //点击左下角的向左箭头
LeftClick 1
Delay 300
MoveTo 793, 693 //切换到上一日的excel表
LeftClick 1
Delay 150
煤质化验录入时间
Dim a
a = 0
Delay 500
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1 //复制日期
Delay 100
KeyPress "Down", 1
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 250
Do Until a > 5
Delay 150
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1 //粘贴
Delay 50
KeyPress "Down", 1
a = a + 1
Loop
Delay 250
MoveTo 14, 257
Delay 100
LeftClick 1 //点击提交
Delay 250
MoveTo 762, 293
Delay 100
LeftClick 1 //点击下一日
Delay 250
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换回excel
录入洗混煤
//先打开xls和chrome
Delay 500
MoveTo 939, 473
LeftClick 1 //鼠标点击煤场库存
Delay 500
KeyPress "Down", 3
Delay 500
KeyPress "Right", 1 //定位到洗混煤
Delay 100
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 100
KeyPress "Down", 1
Delay 100
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 300
MoveTo 665, 82
Delay 100
LeftClick 1//进行查找洗混煤
Delay 300
FindColor 208, 311, 1179, 704, "3296FF", intX, intY
Delay 300
MoveTo intX, intY
Delay 300
MoveTo intX + 338, intY
Delay 100
LeftClick 1//定位到洗混煤库存
Delay 100
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 100
KeyPress "Enter", 1//定位到湿煤泥
Delay 100
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到excel
Delay 300
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制湿煤泥数据
Delay 100
Delay 100
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 100
Delay 100
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴湿煤泥库存
Delay 100
Delay 1000
MoveTo 18, 263
Delay 500
LeftClick 1//提交
Delay 500
MoveTo 511, 290
LeftClick 1 //点击上一日
Delay 500
Delay 300
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到excel
Delay 300
MoveTo 29, 693 //点击左下角的向左箭头
LeftClick 1
Delay 300
MoveTo 793, 693 //切换到上一日的excel表
LeftClick 1
Delay 300
综合日报填报
//先打开xls和chrome的gc煤矿综合调度填报,在选择好查找选项
Delay 500
MoveTo 86,656
Delay 500
LeftClick 1 //定位到这个日期的需要录入的巷道名称
Delay 300
KeyPress "Right", 2//定位到计划数据
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 500
KeyDown 17, 1
KeyPress 70, 1
KeyUp 17, 1 //ctrl+f 定位到查找
Delay 500
KeyDown 18, 1
KeyPress 70, 1
KeyUp 18, 1 //alt+f 定位到下一个日期的巷道
Delay 1000
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 300
MoveTo 665, 82
Delay 100
LeftClick 1//进行查找
Delay 100
Delay 300
FindColor 208, 311, 1179, 704, "3296FF", intX, intY
Delay 300
MoveTo intX, intY
Delay 300
MoveTo intX + 340, intY + 8
Delay 500
LeftClick 1//定位到输入框
Delay 100
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 300
MoveTo 18, 263
LeftClick 1//提交
Delay 500
MoveTo 764, 296
LeftClick 1 //点击下一日
Delay 500
Delay 300
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到excel
Delay 300
通用初始化瓦斯数据
//煤矿初始化瓦斯夜班数据1
//打开chrome浏览器,打开煤矿平台瓦斯夜班报表界面
Dim c1,c,d1, d2,d3 ,d4, d5,d6,d7, d8,d9,d10,d11, d12,d13 ,d14, d15,d16,d17, d18,d19,d20,d21, d22,d23 ,d24, d25,d26,d27,d28,d29,d30
d1 = "2018年04月01日"
d2 = "2018年04月02日"
d3 = "2018年04月03日"
d4 = "2018年04月04日"
d5 = "2018年04月05日"
d6 = "2018年04月06日"
d7 = "2018年04月07日"
d8 = "2018年04月08日"
d9 = "2018年04月09日"
d10 = "2018年04月10日"
d11 = "2018年04月11日"
d12 = "2018年04月12日"
d13 = "2018年04月13日"
d14 = "2018年04月14日"
d15 = "2018年04月15日"
d16 = "2018年04月16日"
d17 = "2018年04月17日"
d18 = "2018年04月18日"
d19 = "2018年04月19日"
d20 = "2018年04月20日"
d21 = "2018年04月21日"
d22 = "2018年04月22日"
d23 = "2018年04月23日"
d24 = "2018年04月24日"
d25 = "2018年04月25日"
d26 = "2018年04月26日"
d27 = "2018年04月27日"
d28 = "2018年04月28日"
d29 = "2018年04月29日"
d30 = "2018年04月30日"
c1 = 41 //需要录入的行数 50
Sub 子程序1()
Delay 800
MoveTo 114, 273 //点击瓦斯中班
Delay 200
LeftClick 1
Delay 4000 //打开页面时间长
MoveTo 861, 308 //鼠标移动到日历图标
Delay 300
LeftClick 1//点击日历,打开日期选择界面
Delay 300
LeftClick 1//点击日历,打开日期选择界面
Delay 300
KeyDown 17, 1
KeyPress 65, 1
KeyUp 17, 1//全选
Delay 300
KeyPress "Delete", 1//清空
End Sub
Sub 子程序2()
Delay 800
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 250
MoveTo 912, 312 //定位到查询
Delay 300
LeftClick 1//点击查询
Delay 2000
c=1
Delay 100
MoveTo 457, 258 //定位到增加记录
Delay 100
Do Until c > c1+3
Delay 100
LeftClick 1 //点击添加行
Delay 700
c = c + 1
Delay 100
Loop
Delay 2000
MoveTo 234, 256
Delay 200
LeftClick 1 //点击提交
Delay 1500
Delay 1500
MoveTo 386, 222
Delay 200
LeftClick 1 //点击 关闭
Delay 1500
End Sub
Delay 500
LockMouse //锁定鼠标位置
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d1) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d2) //将数据写入剪切板
//Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d3)//将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d4) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d5) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d6) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d7) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d8) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d9) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d10) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d11) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d12) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d13)//将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d14) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d15) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d16) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d17) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d18) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d19) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d20) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d21) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d22) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d23)//将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d24) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d25) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d26) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d27) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d28) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d29) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d30) //将数据写入剪切板
Call 子程序2()
gc瓦斯自动录入4月份V1
//先打开xls表和chrome浏览器,都最大化
//chrome打开平台,登录,打开瓦斯日报表-选择一个班次,如夜班、早班、中班
//修改值班日期为需要录入的xls表的日期,如你要录入2018年06月11日的gc煤矿瓦斯检查班报表(夜班),就定位到当天,手动点击增加记录,创建大于40行的空行,进行提交保存。
//chrome的鼠标初始位置在表格左上角,先录入一个数据,保证是直接可录入的状态,再只选中该单元格,不要成为编辑状态。
//删除xls表最下面值班人的所有行,而且气体含量的CH4(%)第二列和CO2第二列检查时间的第二列需要录入的部分第一行不能为空,可手动输入任意字符进行填充,搬运完成以后再删除
//xls定位到a6的位置,也就是检查地点下面的那个单元格
//alt+tab切换一下,保证可以在xls表和chrome浏览器之间来回切换
//初始在xls表,启动脚本的快捷键是ctrl+f10,有的计算机是ctrl+fn+f10,就可以进行批量复制了,复制完以后在chrome上进行提交保存,再删除最下面的空行。
//若出错,狂按ctrl+f12或ctrl+fn+f12,若不行试试f12,fn+f12
Dim a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,aa,bb,c1
//但只是复制为字符串,未赋值为变量的数值
//a1检测地点
//a2 人数
//a3 温度1
//a4 温度2
//a5 CH4-1
//a6 CH4-2
//a7 CO2-1
//a8 CO2-2
//a9 检查时间1
//a10 检查时间2
//a11 检查人
//aa 读取的列数
//bb 写的列数
//c1 下拉多少行
a=""
c1 = 41
c1 = c1 - 1
Delay 800
LockMouse //锁定鼠标位置
Call Plugin.Sys.SetCLB(a) //清空剪切板
Delay 800
aa = 1//默认先读第一列
Do Until aa>11
Delay 250
KeyDown 16, 1
KeyPress "Down", c1
KeyUp 16, 1 //全部选择该列
Delay 250
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 123
If aa=1 then
a1 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=2 then
a2 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=3 then
a3 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=4 then
a4 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=5 then
a5 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=6 then
a6 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=7 then
a7 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=8 then
a8 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=9 then
a9 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa= 10 then
a10 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa= 11 then
a11 = Plugin.Sys.GetCLB()//获取剪切板的数据
Else
End if
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
aa = aa + 1
Loop
Delay 250
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 123
bb = 1//默认先写第一列
Do Until bb > 13
Delay 250
If bb=1 then
Call Plugin.Sys.SetCLB(a1) //将数据写入剪切板 检查地点
Elseif bb=2 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=3 then
Call Plugin.Sys.SetCLB(a9) //将数据写入剪切板 时间1
Elseif bb=4 then
Call Plugin.Sys.SetCLB(a5) //将数据写入剪切板 CH4-1
Elseif bb=5 then
Call Plugin.Sys.SetCLB(a7) //将数据写入剪切板 CO2-1
Elseif bb=6 then
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板 温度-1
Elseif bb=7 then
Call Plugin.Sys.SetCLB(a11) //将数据写入剪切板 检查人
Elseif bb=8 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=9 then
Call Plugin.Sys.SetCLB(a10) //将数据写入剪切板 时间2
Elseif bb=10 then
Call Plugin.Sys.SetCLB(a6)//将数据写入剪切板 CH4-2
Elseif bb= 11 then
Call Plugin.Sys.SetCLB(a8) //将数据写入剪切板 CO2-2
Elseif bb= 12 then
Call Plugin.Sys.SetCLB(a4) //将数据写入剪切板 温度-2
Elseif bb= 13 then
Call Plugin.Sys.SetCLB(a11) //将数据写入剪切板 检查人
Else
End if
Delay 250
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴整列
Delay 250
KeyPress "Up", c1//定位到下一列的第一行
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
bb = bb + 1
TracePrint bb
Loop
gc瓦斯自动录入4月神器版V2
//初始化在chrome界面,左侧打开清单,瓦斯日报表,瓦斯日报表顶头
//total commander资源管理器处于打开状态,并移动到需要录入的xls表
Dim a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,aa, bb, c1, c, d1, d2,d3 ,d4, d5,d6,d7, d8,d9,d10,d11, d12,d13 ,d14, d15,d16,d17, d18,d19,d20,d21, d22,d23 ,d24, d25,d26,d27,d28,d29,d30
//但只是复制为字符串,未赋值为变量的数值
//a1检测地点
//a2 人数
//a3 温度1
//a4 温度2
//a5 CH4-1
//a6 CH4-2
//a7 CO2-1
//a8 CO2-2
//a9 检查时间1
//a10 检查时间2
//a11 检查人
//aa 读取的列数
//bb 写的列数
//c1 下拉多少行
d1 = "2018年04月01日"
d2 = "2018年04月02日"
d3 = "2018年04月03日"
d4 = "2018年04月04日"
d5 = "2018年04月05日"
d6 = "2018年04月06日"
d7 = "2018年04月07日"
d8 = "2018年04月08日"
d9 = "2018年04月09日"
d10 = "2018年04月10日"
d11 = "2018年04月11日"
d12 = "2018年04月12日"
d13 = "2018年04月13日"
d14 = "2018年04月14日"
d15 = "2018年04月15日"
d16 = "2018年04月16日"
d17 = "2018年04月17日"
d18 = "2018年04月18日"
d19 = "2018年04月19日"
d20 = "2018年04月20日"
d21 = "2018年04月21日"
d22 = "2018年04月22日"
d23 = "2018年04月23日"
d24 = "2018年04月24日"
d25 = "2018年04月25日"
d26 = "2018年04月26日"
d27 = "2018年04月27日"
d28 = "2018年04月28日"
d29 = "2018年04月29日"
d30 = "2018年04月30日"
a=""
c1 = 41
c1 = c1 - 1
Sub 子程序1()
Delay 800
MoveTo 119, 274 //点击瓦斯早班
Delay 200
LeftClick 1
Delay 4000 //打开页面时间长
MoveTo 861, 308 //鼠标移动到日历图标
Delay 300
LeftClick 1//点击日历,打开日期选择界面
Delay 300
LeftClick 1//点击日历,打开日期选择界面
Delay 300
KeyDown 17, 1
KeyPress 65, 1
KeyUp 17, 1//全选
Delay 300
KeyPress "Delete", 1//清空
End Sub
Sub 子程序2()
Delay 800
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 250
MoveTo 912, 312 //定位到查询
Delay 300
LeftClick 1//点击查询
Delay 2000
//KeyPress "Right", 1 //移动激活单元格到第二列
//Delay 2000
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到tc
Delay 2000
KeyPress "Enter", 1//打开xls表
Delay 2000
Delay 250
aa = 1//默认先读第一列
Do Until aa>11
Delay 250
KeyDown 16, 1
KeyPress "Down", c1
KeyUp 16, 1 //全部选择该列
Delay 250
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 123
If aa=1 then
a1 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=2 then
a2 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=3 then
a3 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=4 then
a4 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=5 then
a5 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=6 then
a6 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=7 then
a7 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=8 then
a8 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=9 then
a9 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa= 10 then
a10 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa= 11 then
a11 = Plugin.Sys.GetCLB()//获取剪切板的数据
Else
End if
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
aa = aa + 1
Loop
Delay 2000
KeyDown 18, 1
KeyPress 115, 1
KeyUp 18, 1//alt+f4关闭xls表
Delay 2000
KeyPress "Down", 1 //tc界面向下选择
Delay 200
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 500
bb = 1//默认先写第一列
Do Until bb > 13
Delay 250
If bb=1 then
Call Plugin.Sys.SetCLB(a1) //将数据写入剪切板 检查地点
Elseif bb=2 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=3 then
Call Plugin.Sys.SetCLB(a9) //将数据写入剪切板 时间1
Elseif bb=4 then
Call Plugin.Sys.SetCLB(a5) //将数据写入剪切板 CH4-1
Elseif bb=5 then
Call Plugin.Sys.SetCLB(a7) //将数据写入剪切板 CO2-1
Elseif bb=6 then
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板 温度-1
Elseif bb=7 then
Call Plugin.Sys.SetCLB(a11) //将数据写入剪切板 检查人
Elseif bb=8 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=9 then
Call Plugin.Sys.SetCLB(a10) //将数据写入剪切板 时间2
Elseif bb=10 then
Call Plugin.Sys.SetCLB(a6)//将数据写入剪切板 CH4-2
Elseif bb= 11 then
Call Plugin.Sys.SetCLB(a8) //将数据写入剪切板 CO2-2
Elseif bb= 12 then
Call Plugin.Sys.SetCLB(a4) //将数据写入剪切板 温度-2
Elseif bb= 13 then
Call Plugin.Sys.SetCLB(a11) //将数据写入剪切板 检查人
Else
End if
Delay 250
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴整列
Delay 250
KeyPress "Up", c1//定位到下一列的第一行
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
bb = bb + 1
TracePrint bb
Loop
Delay 2000
MoveTo 234, 256
Delay 200
LeftClick 1 //点击提交
Delay 1500
Delay 500
MoveTo 386, 222
Delay 200
LeftClick 1 //点击 关闭
Delay 1500
End Sub
Delay 800
LockMouse //锁定鼠标位置
Call Plugin.Sys.SetCLB(a) //清空剪切板
Delay 800
Call 子程序1()
Call Plugin.Sys.SetCLB(d1) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d2) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d3)//将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d4) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d5) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d6) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d7) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d8) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d9) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d10) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d11) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d12) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d13)//将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d14) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d15) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d16) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d17) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d18) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d19) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d20) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d21) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d22) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d23)//将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d24) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d25) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d26) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d27) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d28) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d29) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d30) //将数据写入剪切板
Call 子程序2()
wl瓦斯自动录入5月6月V2
//先打开xls表和chrome浏览器,都最大化
//chrome打开wl平台,登录,打开瓦斯日报表-选择一个班次,如夜班、早班、中班
//修改值班日期为需要录入的xls表的日期,如你要录入2018年06月11日的wl煤矿瓦斯检查班报表(夜班),就定位到当天,手动点击增加记录,创建大于该xle表待录入数据总行的空行,进行提交保存。
//chrome的鼠标初始位置在表格左上角的人数下面的单元格,先录入一个数据,保证是直接可录入的状态,再只选中该单元格,不要成为编辑状态。
//删除xls表最下面备注及以下的的所有行,而且气体含量的CH4(%)第二列和CO2第二列检查时间的第二列需要录入的部分第一行不能为空,可手动输入任意字符进行填充,搬运完成以后再删除
//xls定位到第一个人数下面的单元格的位置,也就是检查地点下面的那个单元格 (若为早班或中班,则定位到该班的左上角人数下面的单元格)
//alt+tab切换一下,保证可以在xls表和chrome浏览器之间来回切换
//初始在xls表,启动脚本的快捷键是ctrl+f10,有的计算机是ctrl+fn+f10,就可以进行批量复制了,复制完以后在chrome上进行提交保存,再删除最下面的空行。
//若出错,狂按ctrl+f12或ctrl+fn+f12,若不行试试f12,fn+f12
Dim a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,aa,bb,c1
//但只是复制为字符串,未赋值为变量的数值
//a1检测地点
//a2 人数
//a3 温度
//a4 CH4-1
//a5 CH4-2
//a6 CO2-1
//a7 CO2-2
//a8 检查时间1
//a9 检查时间2
//a10 检查人
//aa 读取的列数
//bb 写的列数
//c1 下拉多少行
a=""
c1 = 48
c1 = c1 - 1
Delay 800
LockMouse //锁定鼠标位置
Call Plugin.Sys.SetCLB(a) //清空剪切板
Delay 800
aa = 2//默认先读第二列 人数
Do Until aa>10
Delay 250
KeyDown 16, 1
KeyPress "Down", c1
KeyUp 16, 1 //全部选择该列
Delay 250
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 123
If aa=1 then
a1 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=2 then
a2 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=3 then
a3 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=4 then
a4 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=5 then
a5 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=6 then
a6 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=7 then
a7 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=8 then
a8 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=9 then
a9 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa= 10 then
a10 = Plugin.Sys.GetCLB()//获取剪切板的数据
Else
End if
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
aa = aa + 1
Loop
Delay 250
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 123
bb = 2//默认先写第二列 人数
Do Until bb > 13
Delay 250
If bb=1 then
Call Plugin.Sys.SetCLB(a1) //将数据写入剪切板 检查地点
Elseif bb=2 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=3 then
Call Plugin.Sys.SetCLB(a8) //将数据写入剪切板 时间1
Elseif bb=4 then
Call Plugin.Sys.SetCLB(a4) //将数据写入剪切板 CH4-1
Elseif bb=5 then
Call Plugin.Sys.SetCLB(a6) //将数据写入剪切板 CO2-1
Elseif bb=6 then
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板 温度
Elseif bb=7 then
Call Plugin.Sys.SetCLB(a10) //将数据写入剪切板 检查人
Elseif bb=8 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=9 then
Call Plugin.Sys.SetCLB(a9) //将数据写入剪切板 时间2
Elseif bb=10 then
Call Plugin.Sys.SetCLB(a5)//将数据写入剪切板 CH4-2
Elseif bb= 11 then
Call Plugin.Sys.SetCLB(a7) //将数据写入剪切板 CO2-2
Elseif bb= 12 then
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板 温度
Elseif bb= 13 then
Call Plugin.Sys.SetCLB(a10) //将数据写入剪切板 检查人
Else
End if
Delay 250
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴整列
Delay 250
KeyPress "Up", c1//定位到下一列的第一行
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
bb = bb + 1
TracePrint bb
Loop
示例9
wl瓦斯自动录入5月6月神器版V2
//初始化在chrome界面,左侧打开清单,定位到瓦斯日报表,瓦斯日报表顶头
//tc处于打开状态,并移动到需要录入的xls表
Dim a, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, aa, bb, c1, c, d1, d2,d3 ,d4, d5,d6,d7, d8,d9,d10
//但只是复制为字符串,未赋值为变量的数值
//a1检测地点
//a2 人数
//a3 温度
//a4 CH4-1
//a5 CH4-2
//a6 CO2-1
//a7 CO2-2
//a8 检查时间1
//a9 检查时间2
//a10 检查人
//aa 读取的列数
//bb 写的列数
//c1 下拉多少行
d1 = "2018年05月18日"
d2 = "2018年05月19日"
d3 = "2018年05月20日"
d4 = "2018年05月24日"
d5 = "2018年05月25日"
d6 = "2018年05月26日"
d7 = "2018年05月27日"
d8 = "2018年05月28日"
d9 = "2018年05月30日"
d10 = "2018年05月31日"
a=""
c1 = 50
c1 = c1 - 1
Sub 子程序1()
Delay 800
MoveTo 119, 272 //点击瓦斯中班
Delay 200
LeftClick 1
Delay 4000 //打开页面时间长
MoveTo 861, 308 //鼠标移动到日历图标
Delay 300
LeftClick 1//点击日历,打开日期选择界面
Delay 300
LeftClick 1//点击日历,打开日期选择界面
Delay 300
KeyDown 17, 1
KeyPress 65, 1
KeyUp 17, 1//全选
Delay 300
KeyPress "Delete", 1//清空
End Sub
Sub 子程序2()
Delay 800
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴
Delay 250
MoveTo 912, 312 //定位到查询
Delay 300
LeftClick 1//点击查询
Delay 2000
KeyPress "Right", 1 //移动激活单元格到第二列
Delay 2000
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到tc
Delay 2000
KeyPress "Enter", 1//打开xls表
Delay 2000
Delay 250
aa = 2//默认先读第二列 人数
Do Until aa>10
Delay 250
KeyDown 16, 1
KeyPress "Down", c1
KeyUp 16, 1 //全部选择该列
Delay 250
KeyDown 17, 1
KeyPress 67, 1
KeyUp 17, 1//复制
Delay 123
If aa=1 then
a1 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=2 then
a2 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=3 then
a3 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=4 then
a4 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=5 then
a5 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=6 then
a6 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=7 then
a7 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=8 then
a8 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa=9 then
a9 = Plugin.Sys.GetCLB()//获取剪切板的数据
Elseif aa= 10 then
a10 = Plugin.Sys.GetCLB()//获取剪切板的数据
Else
End if
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
aa = aa + 1
Loop
Delay 2000
KeyDown 18, 1
KeyPress 115, 1
KeyUp 18, 1//alt+f4关闭xls表
Delay 2000
KeyPress "Down", 1 //tc界面向下选择
Delay 200
KeyDown 18, 1
KeyPress 9, 1
KeyUp 18, 1//alt+tab切换到chrome
Delay 500
bb = 2//默认先写第二列 人数
Do Until bb > 13
Delay 250
If bb=1 then
Call Plugin.Sys.SetCLB(a1) //将数据写入剪切板 检查地点
Elseif bb=2 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=3 then
Call Plugin.Sys.SetCLB(a8) //将数据写入剪切板 时间1
Elseif bb=4 then
Call Plugin.Sys.SetCLB(a4) //将数据写入剪切板 CH4-1
Elseif bb=5 then
Call Plugin.Sys.SetCLB(a6) //将数据写入剪切板 CO2-1
Elseif bb=6 then
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板 温度
Elseif bb=7 then
Call Plugin.Sys.SetCLB(a10) //将数据写入剪切板 检查人
Elseif bb=8 then
Call Plugin.Sys.SetCLB(a2) //将数据写入剪切板 人数
Elseif bb=9 then
Call Plugin.Sys.SetCLB(a9) //将数据写入剪切板 时间2
Elseif bb=10 then
Call Plugin.Sys.SetCLB(a5)//将数据写入剪切板 CH4-2
Elseif bb= 11 then
Call Plugin.Sys.SetCLB(a7) //将数据写入剪切板 CO2-2
Elseif bb= 12 then
Call Plugin.Sys.SetCLB(a3) //将数据写入剪切板 温度
Elseif bb= 13 then
Call Plugin.Sys.SetCLB(a10) //将数据写入剪切板 检查人
Else
End if
Delay 250
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1//粘贴整列
Delay 250
KeyPress "Up", c1//定位到下一列的第一行
Delay 123
KeyPress "Right", 1 //移动到下一个
Delay 123
bb = bb + 1
TracePrint bb
Loop
Delay 2000
MoveTo 234, 256
Delay 200
LeftClick 1 //点击提交
Delay 1500
Delay 500
MoveTo 386, 222
Delay 200
LeftClick 1 //点击 关闭
Delay 1500
End Sub
Delay 800
LockMouse //锁定鼠标位置
Call Plugin.Sys.SetCLB(a) //清空剪切板
Delay 800
Call 子程序1()
Call Plugin.Sys.SetCLB(d1) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d2) //将数据写入剪切板
Call 子程序2()
Call 子程序1()
Call Plugin.Sys.SetCLB(d3)//将数据写入剪切板
Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d4) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d5) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d6) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d7) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d8) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d9) //将数据写入剪切板
//Call 子程序2()
//Call 子程序1()
//Call Plugin.Sys.SetCLB(d10) //将数据写入剪切板
//Call 子程序2()
标注好迁移注意事项,主要是初始位置的设置和点坐标的查询,不保证都能执行成功。
版本号要有规律,脚本命名要规范,注释要尽量写清楚,变量命名要统一。