在用户输入上从一张纸到另一张纸获取数据

时间:2017-07-10 09:26:15

标签: excel vba excel-vba

我有一个Excel工作簿,在那个工作簿中我有很多工作表 一个名为main,另一个名为data,其中包含所有信息。
data表单中包含人名和分配的数字。

例如:A2将具有:123 Chris Smith

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

1 个答案:

答案 0 :(得分:1)

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

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