按键精灵2014
思路分析1、 把我们要点击的坐标点都放到一个字符串变量中,例如:字符串 = '345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63'
3、 分割好字符串之后,arrx里存放的数据情况如下: arrx(0)=345,56 arrx(1)=214,36 arrx(2)=77,88 arrx(3)=89,21 arrx(4)=39,78 arrx(5)=11,20 arrx(6)=67,34 arrx(7)=80,51 arrx(8)=13,63
4、 分割好字符串之后,arry里存放的数据情况如下: arrx(0)=345,56 分割之后 : arry(0)=345 arry(1)=56 arrx(1)=214,36 分割之后 : arry(0)=214 arry(1)=36 arrx(2)=77,88 分割之后 : arry(0)=77 arry(1)=88 arrx(3)=89,21 分割之后 : arry(0)=89 arry(1)=21 以此类推…… 我们需要使用二维数组来记录: ArrMap(UBound(arrX),UBound(arrY)) ArrMap二维数组,第一维的元素个数 是分割 '> '这个符号的个数,即:坐标个数。 第二维的元素个数 是分割 ', '这个符号的个数,即:x坐标和y坐标 看表格更加直观:分割 '> ' arrX(0-8) 分割 ', ' arry(0) x坐标分割 ', ' arry(1) y坐标345,56 ArrMap(0,0) =345ArrMap(0,1) =56214,36 ArrMap(1,0) =214ArrMap(1,1) =3677,88ArrMap(2,0) =77ArrMap(2,1) =8889,21ArrMap(3,0) =89ArrMap(3,1) =2139,78ArrMap(4,0) =39ArrMap(4,1) =7811,20ArrMap(5,0) =11ArrMap(5,1) =2067,34ArrMap(6,0) =67ArrMap(6,1) =3480,51ArrMap(7,0) =80ArrMap(7,1) =5113,63ArrMap(8,0) =13ArrMap(8,1) =63
5、 调用Sub StrToArr(字符串) 分割坐标,循环点击坐标点。 代码 字符串 = '345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63'Call StrToArr(字符串)For i = 0 To UBound(ArrMap, 1) MoveTo arrmap(i, 0), arrmap(i, 1) TracePrint arrmap(i, 0)& ','&arrmap(i, 1) LeftClick 1NextSub StrToArr(字符串) Dim i, j, arrX, arrY arrX = Split(字符串, '>') For i = 0 To UBound(arrX) arrY = Split(arrX(i), ',') For j = 0 To UBound(arrY) If j = 0 and i = 0 Then Redim ArrMap(UBound(arrX),UBound(arrY)) End If ArrMap(i, j) = arrY(j) next NextEnd Sub 注意: If j = 0 and i = 0 Then Redim ArrMap(UBound(arrX),UBound(arrY)) End If 这里为什么要在j和i都等于0的时候,定义数组ArrMap的维数和元素个数呢? 因为当j=0 and i=0 的时候,循环才刚刚开始,而二维数组必须要定义才能使用,所以我们需要在循环开始的时候定义,并且,只定义一次。
方法二 字符串 = '345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63'坐标 = Split(字符串, '>')For i = 0 To UBound(坐标) Execute 'MoveTo ' & 坐标(i) MsgBox 坐标(i)Next 这里使用了vbs的 Execute语句 :执行一个或多个指定的语句。 将Moveto 坐标(i) 直接转换为可执行语句, 是一种简单 暴-力的解决方法,大赞!