高分求一个按键精灵识别excel数字的脚本

我的需要是这样的
首先要识别出excel中某个单元格里的数字,然后切换到另一个程序里输入这个数字,然后还要识别出这个程序里所现实的数字并输入到excel里,这其中某几个数字需要经过一些简单的计算,有时又需要识别excel和另一程序里的数字并计算其中的差然后在输入
重点就是要让按键精灵识别出excel和那个程序中的数字和字母(单词),这点该怎么弄?
惭愧啊,源代码我有点是看不懂,我需要识别的数字大多是财务用的,所以要保留小数点以后两位,按键精灵能识别小数点吗?哪位高手能帮我做个样本,具体要求是识别excel中A1单元格的数字(8位数,包括小数点后两位)然后输入到B1单元格里,然后在计算A2和A3单元格里两个数字的差(A2-A3 注意这里是要按键精灵自己计算,把计算结果输入,而不是让excel计算),输入到B2单元格里,有了这个样本估计我就能做出我需要的脚本了,如果做出的样本可用,追加100分,望各位高手赐教啊~~~

识别的标准是什么?根据什么识别?只要整数吗?或者...
你描述的情况好像比较复杂,实现准确的全自动可能性不大,
给你一段脚本参考(注释详细),我用这个脚本把一个应用程序的数据复制到EXCEL里。
dim strtext
dim path as String
dim hang as integer
dim lie as integer
dim n as integer
VBS n=1
VBS i=1
//用变量i配合x控制循环次数
VBS lie=3
//从第3列开始写入,lie是列
Plugin hwnd = Window.GetKeyFocusWnd()
//获得当前窗口句柄
Delay 100
//VBSCall path=inputbox("请输入要写入的excel文件路径,如:d:\损失率.xls")
path="d:\dw\抄表赵.xls"
VBSCall n=cint(inputbox("要写入第几张工作表,请输入整数"))
VBSCall hang =cint(inputbox("从第几行开始写入"))
//hang=2
//从第hang行开始写入,hang是行
VBSCall x =cint(inputbox("要写入多少条到excel,最多25"))
//cint数字函数! 能把字符型变成数字!强制执行整数运算
Delay 100
VBS Set objIE = CreateObject("InternetExplorer.Application")
VBS objIE.Navigate("about:blank")
Delay 200
While i<=x
Plugin Window.Active(hwnd)
//激活窗口
Delay 666
Gosub Ctrl+C复制
Delay 200
VBS strtext=objIE.document.parentwindow.clipboardData.GetData("text")
strtext=Trim(strtext)
//Trim函数能去掉字符串中的空格
Delay 100
//VBSCall Call MessageBox(strtext)
//SayExpression strtext
Rem ==================下面是写入EXCEL部分==================
Set xlApp=CreateObject("Excel.Application")
xlApp.Visible = false
//True 去掉或改成 false就是前台看不见
Set xlBook = xlApp.Workbooks.Open(path)
//path是文件的路径和名字,如:d:\抄表.xls。也可是用变量(本例中用变量path)
//Set xlSheet = xlBook.ActiveSheet
//如果需要取的不是默认被打开的那个工作表,要用 Set xlSheet = xlBook.Sheets(Num) Num= 1..2.3.. 替换上句,指定正确的工作表
Set xlSheet = xlBook.Sheets(n)
//写入第n张工作表,n改成3就是第三张
Delay 100
VBS xlSheet.cells(hang,lie).value=strtext
//(行,列)。上面两行就是在单元格写入。(1,1)就是A1格
VBS xlBook.save
//保存用xlBook.save 或者 xlBook.saveAs "保存路径\新名字" 就是另存为。
VBS xlApp.quit
VBS Set xlApp=Nothing
hang=hang+1
//lie=lie+1
Rem ==================上面是写入EXCEL部分==================
i=i+1
Gosub 选中下一条记录
EndWhile
VBS objIE.Quit
VBSCall Call MessageBox("已完成"&x&"项写入")
EndScript
Sub Ctrl+C复制
KeyDown 17 1
Delay 18
KeyPress 67 1
Delay 18
KeyUp 17 1
Return Ctrl+C
Sub 选中下一条记录
KeyPress 40,1
KeyPress 13,1
Return 选中下一条记录
//结束
strtext=objIE.document.parentwindow.clipboardData.GetData("text")
这行把复制到的内容赋给变量strtext,这样也能实现对复制内容的计算。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-28
识别的标准是什么?根据什么识别?只要整数吗?或者...
你描述的情况好像比较复杂,实现准确的全自动可能性不大,
给你一段脚本参考(注释详细),我用这个脚本把一个应用程序的数据复制到EXCEL里。
dim
strtext
dim
path
as
String
dim
hang
as
integer
dim
lie
as
integer
dim
n
as
integer
VBS
n=1
VBS
i=1
//用变量i配合x控制循环次数
VBS
lie=3
//从第3列开始写入,lie是列
Plugin
hwnd
=
Window.GetKeyFocusWnd()
//获得当前窗口句柄
Delay
100
//VBSCall
path=inputbox("请输入要写入的excel文件路径,如:d:\损失率.xls")
path="d:\dw\抄表赵.xls"
VBSCall
n=cint(inputbox("要写入第几张工作表,请输入整数"))
VBSCall
hang
=cint(inputbox("从第几行开始写入"))
//hang=2
//从第hang行开始写入,hang是行
VBSCall
x
=cint(inputbox("要写入多少条到excel,最多25"))
//cint数字函数!
能把字符型变成数字!强制执行整数运算
Delay
100
VBS
Set
objIE
=
CreateObject("InternetExplorer.Application")
VBS
objIE.Navigate("about:blank")
Delay
200
While
i<=x
Plugin
Window.Active(hwnd)
//激活窗口
Delay
666
Gosub
Ctrl+C复制
Delay
200
VBS
strtext=objIE.document.parentwindow.clipboardData.GetData("text")
strtext=Trim(strtext)
//Trim函数能去掉字符串中的空格
Delay
100
//VBSCall
Call
MessageBox(strtext)
//SayExpression
strtext
Rem
==================下面是写入EXCEL部分==================
Set
xlApp=CreateObject("Excel.Application")
xlApp.Visible
=
false
//True
去掉或改成
false就是前台看不见
Set
xlBook
=
xlApp.Workbooks.Open(path)
//path是文件的路径和名字,如:d:\抄表.xls。也可是用变量(本例中用变量path)
//Set
xlSheet
=
xlBook.ActiveSheet
//如果需要取的不是默认被打开的那个工作表,要用
Set
xlSheet
=
xlBook.Sheets(Num)
Num=
1..2.3..
替换上句,指定正确的工作表
Set
xlSheet
=
xlBook.Sheets(n)
//写入第n张工作表,n改成3就是第三张
Delay
100
VBS
xlSheet.cells(hang,lie).value=strtext
//(行,列)。上面两行就是在单元格写入。(1,1)就是A1格
VBS
xlBook.save
//保存用xlBook.save
或者
xlBook.saveAs
"保存路径\新名字"
就是另存为。
VBS
xlApp.quit
VBS
Set
xlApp=Nothing
hang=hang+1
//lie=lie+1
Rem
==================上面是写入EXCEL部分==================
i=i+1
Gosub
选中下一条记录
EndWhile
VBS
objIE.Quit
VBSCall
Call
MessageBox("已完成"&x&"项写入")
EndScript
Sub
Ctrl+C复制
KeyDown
17
1
Delay
18
KeyPress
67
1
Delay
18
KeyUp
17
1
Return
Ctrl+C
Sub
选中下一条记录
KeyPress
40,1
KeyPress
13,1
Return
选中下一条记录
//结束
strtext=objIE.document.parentwindow.clipboardData.GetData("text")
这行把复制到的内容赋给变量strtext,这样也能实现对复制内容的计算。
第2个回答  2009-02-18
用找图的方法来读取数字
论坛上有写文章可以看看

http://bbs.vrbrothers.com/viewthread.php?tid=73968&highlight=%B6%C1%C8%A1%CA%FD%D7%D6 我发的一篇通过找图来识别的
http://bbs.vrbrothers.com/viewthread.php?tid=31067&extra=page%3D1
点阵法识别
其实你主要是要得到数字的特征然后判断
第3个回答  2009-02-13
http://www.web162.com/Table-List57168
在这下一个按键精灵助手用吧,好用的。
第4个回答  2009-02-14
按键精灵?不明白什么意思.
1) 你是不是想在你自已编的程序中实现操作excel表格的功能的呀?
2) 你是不是想在自已编的程序中实现操作excel和第三方软件中的输入输出呢?
3) 你是不是想在excel中实现和第三方软件中的输入和输出对接呀?

上面三种你是属于哪一种呢?
相似回答