以下是编程的要求呀,录了几遍宏,结果都没调试好。求高手帮助呀。
1、有两张工作表,sheet1和sheet2,所有字段属性均为文本。
2、复制sheet1中的B2字段,在sheet2中搜索相同字段,情况分为:A搜到一个B搜到多个C没搜到
A搜到一个,则将sheet2中搜到的字段的右边一个单元格,复制到sheet1中的B2的右边一个单元格。
B搜到多个,则将sheet1和sheet2中的搜索字段颜色变红。
C没有搜到,则将sheet1中的字段变黄。
3、继续复制sheet1中的B3,重复步骤2,直到结束,以B563为结束。
1、有两张工作表,sheet1和sheet2,所有字段属性均为文本。
2、复制sheet1中的B2字段,在sheet2中搜索相同字段,情况分为:A搜到一个B搜到多个C没搜到
A搜到一个,则将sheet2中搜到的字段的右边一个单元格,复制到sheet1中的B2的右边一个单元格。
B搜到多个,则将sheet1和sheet2中的搜索字段颜色变红。
C没有搜到,则将sheet1中的字段变黄。
3、继续复制sheet1中的B3,重复步骤2,直到结束,以B563为结束。
'vba
Sub main()
Dim wz(3) As Long
For i = 2 To 10 '563
wz(0) = i: wz(1) = 2
Select Case iCount(Sheet1.Cells(wz(0), wz(1)), wz)
Case 0
izero wz
Case 1
icopy wz
Case Else
iclr wz
End Select
Next
End SubFunction iCount(ByVal a As String, wz() As Long) As Long
Dim iCnt As Integer, iFlg As Boolean
Dim j As Integer, k As Integer, f As Boolean
For j = 1 To Sheet2.UsedRange.Rows.Count
For k = 1 To Sheet2.UsedRange.Columns.Count
If Sheet2.Cells(j, k) = a Then
If Not f Then wz(2) = j: wz(3) = k: f = True
iCnt = iCnt + 1
If iCount > 2 Then iFlg = True
End If
If iFlg Then Exit For
Next
If iFlg Then Exit For
Next
iCount = iCnt
End Function
Sub izero(wz() As Long)
Sheet1.Cells(wz(0), wz(1)).Interior.ColorIndex = 6
End SubSub icopy(wz() As Long)
Sheet1.Cells(wz(0), wz(1) + 1) = Sheet2.Cells(wz(2), wz(3) + 1)
End SubSub iclr(wz)
Dim iCnt As Integer
Dim j As Integer, k As Integer
Sheet1.Cells(wz(0), wz(1)).Interior.ColorIndex = 3
For j = 1 To Sheet2.UsedRange.Rows.Count
For k = 1 To Sheet2.UsedRange.Columns.Count
If Sheet2.Cells(j, k) = Sheet1.Cells(wz(0), wz(1)) Then
Sheet2.Cells(j, k).Interior.ColorIndex = 3
End If
Next
Next
End Sub