用VBA按条件选择一个表中某些单元格然后选择性粘贴到另一个表中的特定单元格

表一 姓名 年龄 职位
xm1 26 主管
xm2 25 主办
xm3 34 助理
表二 xingm nianl zhiw
王刚 空 空
张三 空 空
李四 空 空
从表一中筛选出姓名为xm1和xm2的人的年龄和职位粘贴到表二中张三和李四的nianl和zhiw单元格中,如果搜索不到xm1或xm2则跳过继续下面的动作。这里是随便举两个例子,真实的表有很多条记录。
请给具体代码,最好有解释。高分追加!!!

问题,提问的过于复杂了。其实完全可以用函数解决。
=SUMPRODUCT(($A$4:$A$27=$F5)*($B$4:$B$27=G$4)*$C$4:$C$27)
=SUMPRODUCT(($A$4:$A$15=$F5)*(--LEFT($B$4:$B$15,LEN($B$4:$B$15)-2)=G$4)*$C$4:$C$15)
用这样的即可
如果要引用其他工作表的
需要加上sheet标签,如果要引用其他文件,需要用
[表一.xls]sheet1!
这样进行引用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-02
for i=1 to 100
for b=1to 100
if cells(i,1)value=cells().value then cells()=cells()
exit for
end if
next b
next i
只给个框架追问

我初学者,可以详细一点吗?

追答

楼下回答的好 我非软件专业 还得给你查书了

第2个回答  2011-11-02
描述不清,特定单元格是横的还是竖的追问

我补充了问题

第3个回答  2011-11-03
'我的邮箱是178003815qq.com,发邮件给我,我把做好的工作表发给你哦!
'代码如下:
Sub 按钮1_单击()
Dim i As Integer, j As Integer '定义i,j为整型
For i = 1 To 10000 Step 1 '循环语句,设定从sheet2的A1开始循环到A10000
'如果出现连续4行为空值,则不再继续循环
If Sheet2.Cells(i, 1) = "" And Sheet2.Cells(i + 1, 1) = "" And Sheet2.Cells(i + 2, 1) = "" And Sheet2.Cells(i + 3, 1) = "" Then
Exit For
End If

For j = 1 To 10000 Step 1 '循环语句,设定从sheet1的A1开始循环到A10000
'如果出现连续4行为空值,则不再继续循环
If Sheet1.Cells(j, 1) = "" And Sheet1.Cells(j + 1, 1) = "" And Sheet1.Cells(j + 2, 1) = "" And Sheet1.Cells(j + 3, 1) = "" Then
Exit For
End If
'如果sheet2中的A列与sheet1中的A列一一对比后有相同值,则将sheet1的B列和C列的值等到sheet2的对应单元格中
If Sheet2.Cells(i, 1) = Sheet1.Cells(j, 1) Then
Sheet2.Cells(i, 2) = Sheet1.Cells(j, 2)
Sheet2.Cells(i, 3) = Sheet1.Cells(j, 3)
End If
Next j
Next i

End Sub
相似回答