VBA编程 拿sheet1中的A列和B列中的内容作为关键字去sheet2中A列和B列一行一行的检索,

VBA编程 拿sheet1中的B1单元格和C1单元格中的内容作为关键字去sheet2中B列和C列一行一行的检索,若有相同的,则将sheet E1单元格中的时间按D1单元格的条件添加到sheet2中去;若没有相同的,则将sheet1中的这行内容插入到sheet2中去,然后依次类推去sheet2中查询sheet1中B2单元格和C2单元格中的内容

用vba字典可以实现,思路给出,具体的小细节不详细写了
dim dic,arr,brr
set dic=createobject("scripting.dictionary")
arr=Sheet1.usedrange
brr=Sheet2.usedrange
for i%= 2 to ubound(arr)
dic(arr(i,1)&arr(i,2))=i
next

for i%= 2 to ubound(brr)
ss=brr(i,1)&brr(i,2)
if dic.exists(ss) then '如果存在的话
将sheet E1单元格中的时间按D1单元格的条件添加到sheet2中去
else
将sheet1中的这行内容插入到sheet2中去
end if
next
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-28
这个不用vba,直接用excel内置的函数就可以实现了
第2个回答  2012-04-02
Sub JS()
Dim i As Integer, n As Integer, j As Integer, m As Integer
n = ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Row
m = ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Row
For i = 2 To n
For j = 2 To m
If Sheets(1).Range("B" & i) = Sheets(2).Range("B" & j) And Sheets(1).Range("C" & i) = Sheets(2).Range("C" & j) Then
Sheets(2).Range("E" & j) = Sheets(1).Range(1).Range("E" & i)
Else
Sheets(1).Rows(i & " : " & i).Select
Selection.Copy
Sheets(2).Rows(j & " : " & j).Select
Selection.Insert Shift:=xlDown
End If
Next j
Next i
End Sub本回答被网友采纳
第3个回答  2012-03-26
520
相似回答