不知大家有没什么好的办法,因为如果把取到的值放到Global里会很乱作者: dycadrtf 时间: 2008-7-15 14:50
学习来啦作者: trademark 时间: 2008-7-15 17:01
该脚本都已搞定,谢谢各位提供的建议作者: zte_boy 时间: 2008-7-15 17:18
建议你贴出来供其他有需要的朋友参考参考,作者: trademark 时间: 2008-7-16 10:06
把最主要实现的地方贴出来:
'得到GenVal表单的最大行数
rowcount = DataTable.GetSheet("GenVal").GetRowCount
'操作Excel对象
Set xlApp= CreateObject("Excel.Application")
Set wkBook= xlApp.Workbooks.Open("C:\sg.xls")
Set wkSheet= wkBook.Worksheets("GenVal")
'从本地excel文件的第二行开始循环到第十一行
For i=2 to rowcount+1
'将excel里的第i行第2列数据然后转换成字符再去除两边空格后通过字符内部空格进行分割成数组
MyArray1=split(trim(CStr(wkSheet.Cells(i, 2)))," ")
MyArray2=split(trim(CStr(wkSheet.Cells(i,3)))," ")
s=0'统计,如各数组内元素匹配,则s加1,不匹配则不加1,最后通过s与数组最大下标比较,相同则说明两个数组元素都匹配
'判断两个数组哪个大,根据下标大的数组和下标小的数组进行循环比较
If Ubound(MyArray1)>=Ubound(MyArray2) Then
For j=0 to Ubound(MyArray1)
For k=0 to Ubound(MyArray2)
'去除括号及括号内部的内容
If left(MyArray1(j),instr(1,MyArray1(j),"(")-1)=left(MyArray2(k),instr(1,MyArray2(k),"(")-1) Then
s=s+1
Exit for
End If
Next
Next
If s<>Ubound(MyArray1)+1 Then
print trim(CStr(wkSheet.Cells(i, 1)))
End If
Else
For j=0 to Ubound(MyArray2)
For k=0 to Ubound(MyArray1)
If left(MyArray2(j),instr(1,MyArray2(j),"(")-1)=left(MyArray1(k),instr(1,MyArray1(k),"(")-1) Then
s=s+1
Exit for
End If
Next
Next
If s<>Ubound(MyArray2)+1 Then
print trim(CStr(wkSheet.Cells(i, 1)))
End If
End If
Next
wkBook.Close
xlApp.quit作者: 鹭岛 时间: 2008-7-16 11:40
使用CELLS这个函数,可以用第几列第几行来弄的~~~
CELLS(行,列)