关于 vba:在用户输入时从一张表获取数据到另一张表

Getting data from one sheet to another on the user input

我有一个 Excel 工作簿,在那个工作簿中我有许多工作表。
一张称为 main,另一张称为 data,其中包含所有信息。 data 工作表在同一单元格中包含人员姓名和分配的编号。

例如:A2 将具有:123 Chris Smith

我想要实现的是让用户开始在主表中的任何位置键入数字,它会扫描数据表并完成其余数据。
因此,用户将键入 123,然后宏将填写其余的 123 Chris Smith。


如前所述,您可以使用 Worksheet_Change() 事件。为了向您展示它是如何工作的,请将此代码放在编辑器的 main 工作表中。现在键入任何与您的数据列表匹配的数字,然后单击单元格外,它现在将完成。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sht As Worksheet
Dim rng As Range
Dim val As Variant: val = Target.Value

Set sht = Worksheets("Data")

If Not IsError(val) And Not IsArray(val) Then
    If val <>"" Then
        Set rng = sht.Range("A:A").Find(val &"*", LookAt:=xlWhole)
        If Not rng Is Nothing Then
            Application.EnableEvents = False
            Target.Value = rng.Value
            Application.EnableEvents = True
        End If
    End If
End If
End Sub