我有一个Excel工作簿,在那个工作簿中我有很多工作表
一个名为main
,另一个名为data
,其中包含所有信息。
data
表单中包含人名和分配的数字。
例如:A2将具有:123 Chris Smith
我想要实现的目的是让用户在主表单中的任何位置键入数字,以便扫描数据表并完成其余数据。
因此,用户将键入123,然后宏将填写剩余的123 Chris Smith。
答案 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