第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,这样也能实现对复制内容的计算。