Excel数据从一张表导入另一张表

skisking 2010-04-07 03:04:03
各位达人,最近遇到一个问题,就是我有两张表(如表1、表2),格式如下:
表1 A B C D 表2 A B C
班级 姓名 性别 成绩 性别 姓名 成绩
1班 小王 男 男 小明 90
2班 小明 男 男 小红 85
想通过VBA的方法判断出两张表里都有小明,然后要把表2中小明的成绩导入到表1对应的列中(即D列),上表只是举例,实际的表比较复杂,呵呵,但目的是相同的,小弟不才,写了一段代码,但只能“判断出两张表里都有小明”,下一步再判断后的基础上导入数据应该怎么写呢?望大侠指点阿,谢谢!!!
我的代码:Public Sub test()
Set s1 = Sheets("表1")
Set s2 = Sheets("表2")
For b1 = 4 To s1.[b65536].End(3).Row
For b2 = 4 To s2.[b65536].End(3).Row
If s1.Range("b" & b1) = s2.Range("b" & b2) Then
s1.Range("b" & b1).Interior.ColorIndex = 4
s2.Range("b" & b2).Interior.ColorIndex = 4
End If
Next b2
Next b1
End Sub
...全文
340 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzw8077 2010-04-23
  • 打赏
  • 举报
回复
用VLOOKUP就很简单啊
Viroa 2010-04-09
  • 打赏
  • 举报
回复
楼主是不是想:把表2中对应人名的成绩贴到表1中?

如果是,方法有二。

方法一:
上代码

Public Sub GetScore()
Dim S1 As Worksheet, S2 As Worksheet
Dim b1 As Long, b2 As Long

Set S1 = Worksheets("表1")
Set S2 = Worksheets("表2")

For b1 = 4 To S1.Cells(65535, 2).End(xlUp).Row
For b2 = 4 To S2.Cells(65535, 2).End(xlUp).Row
If S1.Range("B" & b1) = S2.Range("B" & b2) And Sh1.Range("C" & b1) = Sh2.Range("A" & b2) Then
S1.Range("D" & b1) = S2.Range("C" & b2)
End If
Next b2
Next b1
End Sub



方法二:
再上代码

Public Sub GetScore()
With Worksheets("表1")
.Range("D4").Formula = "=VLOOKUP(B2,表2!B$2:C$" & Worksheets("表2").Cells(65535, 2).End(xlUp).Row & ",2,FALSE)"
.Range("D4:D" & .Cells(65535, 2).End(xlUp).Row).FillDown
End With
End Sub

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧