|
9#
楼主 |
发表于 2008-7-16 10:06:26
|
只看该作者
把最主要实现的地方贴出来:
'得到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 |
|