提问内容: 我需要用按键精灵,把EXCEL里面的不同内容提取并黏贴到软件的指定位置。请高手指引。

1、excel的图如下

2、设置的按键精灵图如下

Call Plugin.Office.OpenXls("d:\1.xls")
dim a,b
a = Plugin.Office.ReadXls(1, 2,2)
b = Plugin.Office.ReadXls(1, 2,4)
Call Plugin.Office.CloseXls()
KeyPress "BackSpace", 1
Call Plugin.Sys.SetCLB(a)
Delay 50
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1
Delay 50
KeyPress "Enter", 1
Delay 50
Call Plugin.Office.OpenXls("d:\1.xls")
Call Plugin.Office.CloseXls()
KeyPress "BackSpace", 1
Call Plugin.Sys.SetCLB(b)
Delay 50
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1
Delay 50
KeyPress "Enter", 1
KeyPress "Enter", 1
KeyPress "Enter", 1
最后一问:我完成了初步,但是只能提取行2的列2和列4。我需要继续提取行3-1000的列2和列4,需要怎么做?高分求。

我觉得那个open和close用一次就好了.
打开后用for语句将excel中的内容读到数组里.

类似这样

for r = 3 to 1000
a(r,1) = Plugin.Office.ReadXls(1,r,2)
a(r,2) = Plugin.Office.ReadXls(1,r,4)
next

关闭excel后,再用for next循环将数组中的内容复制粘贴到你的软件里.
btw:你的软件中saystring如果能用的话,是不是比复制粘贴要简单一些?追问

是这样的,他这里面有一个动作。
提取EXCEL行2的列2 - 删除键 - 黏贴到软件里的指定位置(1-1)- 回车
提取EXCEL行2的列4 - 删除键 - 黏贴到软件里的指定位置(1-2)- 回车 - 回车 - 回车

接着

提取EXCEL行3的列2 - 删除键 - 黏贴到软件里的指定位置(2-1)- 回车
提取EXCEL行3的列4 - 删除键 - 黏贴到软件里的指定位置(2-2)- 回车 - 回车 - 回车

追答

看你的代码,删除键是在excel关闭后才按的,所以我说的方法可行.你试试看.
如果对按键精灵的数组和循环语句不了解,可以搜一下相关知识.

追问

根本就用不了。我现在需要的是,其它不动的情况下,行如何循环

追答dim arr(1000,1)
Call Plugin.Office.OpenXls("d:\1.xls")
For r= 3 to 1000
    arr(r,0) = Plugin.Office.ReadXls(1, r, 2)
    arr(r,1) = Plugin.Office.ReadXls(1, r, 4)
next
Call Plugin.Office.CloseXls()
For r= 3 to 1000
KeyPress "BackSpace", 1
Call Plugin.Sys.SetCLB(arr(r,0))
Delay 50
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1
Delay 50
KeyPress "Enter", 1
Delay 50
KeyPress "BackSpace", 1
Call Plugin.Sys.SetCLB(arr(r,1))
Delay 50
KeyDown 17, 1
KeyPress 86, 1
KeyUp 17, 1
Delay 50
KeyPress "Enter", 1
KeyPress "Enter", 1
KeyPress "Enter", 1
next


或者这样


dim arr(1000,1)
Call Plugin.Office.OpenXls("d:\1.xls")
For r= 3 to 1000
    arr(r,0) = Plugin.Office.ReadXls(1, r, 2)
    arr(r,1) = Plugin.Office.ReadXls(1, r, 4)
next
Call Plugin.Office.CloseXls()
For r= 3 to 1000
    KeyPress "BackSpace", 1
    SayString arr(r,0)
    Delay 50
    KeyPress "Enter", 1
    Delay 50
    KeyPress "BackSpace", 1
    SayString arr(r,1)
    KeyPress "Enter", 1
    KeyPress "Enter", 1
    KeyPress "Enter", 1
next

温馨提示:答案为网友推荐,仅供参考
相似回答