|
本帖最后由 jian82372387 于 2023-1-13 15:54 编辑
需求在汇总表1、2中A列输入学号,相应从学生基础信息表中自动提取相关列数据(如果所查学号不存在则跳过),先建立一个全局字典,再通过工作表change事件,A列学号发生变化则自动提取数据
以下是我参考网上写的,但是有问题,无法达到效果,求助大神们帮忙检查一下哪里出门问题了,最好能把解释夜写一下,谢谢。
Public dic学生基础信息 As Dictionary
Function 学生基础信息查询(待查, 列号)
If dic学生基础信息 Is Nothing Then
Dim arr
Set dic学生基础信息 = New Dictionary
arr = Sheets("学生基础信息").Range("A1:H" & Sheets("学生基础信息").Cells(Row.Count, 1).End(xlp).Row).Value
For i = 3 To UBound(arr)
Key = arr(i, 1) & ""
If Key <> "" Then
dic学生基础信息(Key) = i
End If
Next
End If
学生基础信息查询 = Sheets("学生基础信息").Cells(dic学生基础信息(待查 & ""), 列号)
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address Like "*:*" Then
If Not Target.Column = 1 And Target.Row > 2 Then
Cells(Target.Row, 5) = 学生基础信息查询(Target, 4)
Cells(Target.Row, 6) = 学生基础信息查询(Target, 3)
Cells(Target.Row, 7) = 学生基础信息查询(Target, 2)
Cells(Target.Row, 8) = 学生基础信息查询(Target, 8)
Cells(Target.Row, 9) = 学生基础信息查询(Target, 7)
Cells(Target.Row, 10) = 学生基础信息查询(Target, 6)
End If
End If
End Sub
|
|