...
你描述的情况好像比较复杂,实现准确的全自动可能性不大,
给你一段脚本参考(注释详细),我用这个脚本把一个应用程序的数据复制到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,这样也能实现对复制内容的计算。
如果你的那个软件是固定的我倒是可以帮你写个小程序,