首页 新闻 搜索 专区 学院

表间数据引用,求代码。

0
[已解决问题] 解决于 2021-08-01 19:58

假设有张表aaaa,在C3位置输入某人的编号,则在同行的D3、E3.、F3.............BB3位置显示另一数据表bbbb中与输入的编号对应的该人的数据。请问如何实现?谢谢!!!
好像是根据代码引用另一表中的数据。VLOOKUP搞了三天,搞不出来,结果总是##N/A或0,请大师帮忙,谢谢!!!

问题补充:

或者用copy的方法,但这样代码001对应的行号又不知道,由于源数据人员较多,不能一个一个复制吧,输入代码后,自动运行才好。麻烦您了。如果可以,给我地址,我给您寄点我自己产品蛇油膏,以表谢意!

真空妙有的主页 真空妙有 | 初学一级 | 园豆:4
提问于:2021-07-29 22:36
< >
分享
最佳答案
0

Sub Test()
'将sheet3的数据匹配到sheet2中

Dim DataCount As Integer
DataCount = Sheet2.UsedRange.Rows.Count

Dim CodeNum As String
'遍历每一行的编号,从第一行的编号开始
For i = 1 To DataCount
    '根据编号所在的列获取编号,编号所在的列为b列
    CodeNum = Sheet2.Cells(i, "b")
    If IsNull(CodeNum) Or CodeNum = vbNullString Then
         GoTo For_Continue
    End If
    
    Call TestA(CodeNum, i)

For_Continue:
Next i
MsgBox ("执行成功")
End Sub

'遍历sheet3的数据,将对应的数据加入到sheet2
Sub TestA(CodeNum As String, CodeNumIndex As Variant)
Dim DataCountA As Integer
DataCountA = Sheet3.UsedRange.Rows.Count

Dim CodeNumA As String
'遍历匹配每一行的数据
For i = 1 To DataCountA
    '匹配sheet3中编号所在的列
    CodeNumA = Sheet3.Cells(i, "a")
    If IsNull(CodeNumA) Or CodeNumA = vbNullString Then
         GoTo For_ContinueA
    End If
    
    '为匹配成功的行赋值
    If CodeNum = CodeNumA Then
        '为Sheet2的CodeNumIndex行d列赋值为Sheet3的i行b列
        Sheet2.Cells(CodeNumIndex, "d") = Sheet3.Cells(i, "b")
        Sheet2.Cells(CodeNumIndex, "e") = Sheet3.Cells(i, "c")
    End If

For_ContinueA:
Next i

End Sub

奖励园豆:5
在下路过 | 初学一级 |园豆:97 | 2021-07-30 11:24

自己改一下参数吧,执行之前记得备份

在下路过 | 园豆:97 (初学一级) | 2021-07-30 11:26

万分感谢!!!!

真空妙有 | 园豆:4 (初学一级) | 2021-07-31 14:16

@在下路过: 给个地址,我寄点好东西给您,略表谢意。

真空妙有 | 园豆:4 (初学一级) | 2021-07-31 14:21

@真空妙有: 不用了,有用就行

在下路过 | 园豆:97 (初学一级) | 2021-08-02 09:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册