Dim i As Integer
Dim j As Integer
For i = 2 To 95'表1身份z字段是2行到95行
For j = 3 To 258'表2身份z字段是3行到258行
If Sheets("表1").Cells(i, 17) = Sheets("表2").Cells(j, 8) Then '表1身份z是在17列早没弊,表2身份察肢证在第8列
Sheets("表1").Cells(i, 18) = "已存在" '存在时进行标记,并陆族在18列写已存在
End If
Next j
Next i
End Sub
添加一个command控件就可以了Option Explicit
Private Sub Command1_Click()
Dim A(3) As String, B(2) As String
Dim strTemp() As String
Dim lngCount As Long
Dim lngTemp(9) As Long
Dim i As Long, j As Long, k As Long
A(1) = "01 03 06 08 12 15 22 30 33"
A(2) = "02 05 08 15 18 22 25 29 33"
A(3) = "03 12 22 29 30 31 32 33 35"
B(1) = "02 05 08 22"
B(2) = "毁消06 22 28 33"
For i = 1 To 3
strTemp = Split(A(i))
For k = 1 To 2
lngCount = 0
For j = LBound(strTemp) To UBound(strTemp)
If InStr(B(k), strTemp(j)) >0 Then
lngCount = lngCount + 1
lngTemp(lngCount) = strTemp(j)
End If
Next
Print "字符串" &Format(i, "000") &Chr(64 + k) &"与组: 相同数字有" &lngCount &"个汪余和,最小值为"困盯 &lngTemp(1) &",最大值为" &lngTemp(lngCount)
Next
Next
End Sub
专门帮你做了如下 程序,饥答举并经调试通过。加分啊!在程序中增加命令按钮一个,烂碧MSHFlexGrid四个,程序如下,
Option Explicit
Dim a(1 To 2000) As Single
Dim b(1 To 2000) As Single
Private Sub Command1_Click()
Dim i, j As Integer
With MSHFlexGrid1
.Rows = 1 + UBound(a)
.Cols = 2
For i = 1 To UBound(a)
.TextMatrix(i, 1) = a(i)
Next
.Col = 1
.Sort = 1 '排序
End With
Call RemoveduplicateRows(MSHFlexGrid1) '删除重复的行
With MSHFlexGrid2
.Rows = 1 + UBound(b)
.Cols = 2
For i = 1 To UBound(b)
.TextMatrix(i, 1) = b(i)
Next
.Col = 1
.Sort = 1 '排序
End With
Call RemoveduplicateRows(MSHFlexGrid2) '删除重复的行
With MSHFlexGrid3
.Rows = MSHFlexGrid2.Rows + MSHFlexGrid1.Rows - 1
.Cols = 2
For i = 1 To MSHFlexGrid1.Rows - 1 ''将前两表的数据合并到第三表
.TextMatrix(i, 1) = MSHFlexGrid1.TextMatrix(i, 1)
Next
For i = 1 To MSHFlexGrid2.Rows - 1
.TextMatrix(MSHFlexGrid1.Rows - 1 + i, 1) = MSHFlexGrid2.TextMatrix(i, 1)
Next
.Col = 1
.Sort = 1 '排举猛序
j = 1
MSHFlexGrid4.Rows = 2
MSHFlexGrid4.Cols = 2
For i = 2 To .Rows - 1
If .TextMatrix(i, 1) = .TextMatrix(i - 1, 1) Then
MSHFlexGrid4.TextMatrix(MSHFlexGrid4.Rows - 1, 1) = .TextMatrix(i, 1) '前第三表中重复的数据列在第四表,此第四表中第1列的数据就是你要的答案
MSHFlexGrid4.Rows = MSHFlexGrid4.Rows + 1
End If
Next
MSHFlexGrid4.Rows = MSHFlexGrid4.Rows - 1
End With
End Sub
Private Sub RemoveduplicateRows(MSH As MSHFlexGrid) '删除重复的行
Dim i, j As Integer
With MSH
i = 1
Do
j = i
If .Rows >2 Then
Do While j <.Rows - 1
If (.TextMatrix(i, 1) = .TextMatrix(j + 1, 1)) Or VBA.Len(.TextMatrix(j + 1, 1)) = 0 Then '删除重复的行
.RemoveItem (j + 1)
.Refresh
j = j - 1
End If
j = j + 1
Loop
End If
i = i + 1
Loop Until i >= .Rows
End With
End Sub
Private Sub Form_Load()
Dim i As Integer
Randomize
For i = 1 To 2000
a(i) = Val(VBA.Format((Rnd(i) * 100), "#.##")) 'a(1 To 2000), b(1 To 2000)是你已经有的数据,这里由随机数代替
b(i) = Val(VBA.Format((Rnd(i) * 100), "#.##"))
Next
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)