标签:VBA,Find方法
如果“a”代表“Apple”,“b”代表“Bilibili”,“c”代表“Coolqi”,……,等等。我们可以在单元格中只输入这些代表字母,而让Excel自动输出完整的单词内容,如下图1所示。
图1
下面是完整的VBA代码:
代码语言:javascript复制Private Sub Worksheet_Change(ByVal Target As Range)
Dim alphCount As Integer
Dim alph As String
Dim result As String
Dim i As Integer
Dim TargetColumn As Integer
Dim TargetRow As Integer
On Error Resume Next
TargetColumn = Target.Column
TargetRow = Target.Row
If TargetColumn = 5 And Cells(TargetRow, TargetColumn) = "" Then
Cells(TargetRow, TargetColumn 1) = ""
Exit Sub
End If
If TargetColumn = 5 Then
alphCount = Len(Cells(TargetRow, TargetColumn))
For i = 1 To alphCount 1
alph = Mid(Range(Target.Address), i, 1)
If Range("A2:A27").Find(alph) Is Nothing Then
result = result & ", " & alph
Else
result = result & "," & Range("A2:A27").Find(alph).Offset(0, 1)
End If
Next i
Cells(TargetRow, TargetColumn 1) = Mid(result, 2, Len(result) - 3)
End If
End Sub
其中,在工作表的列A中是代表字母,列B中是该字母代表的完整单词。你可以根据你的情况修改或调整。
这就像是一个字典,你输入内容后,Excel会自动帮你在字典中查找相应的内容,然后输出来。
注意,代码位于相应的工作表模块中,使用了该工作表对象的Change事件。
注:有兴趣的朋友可以到知识星球App完美Excel社群下载本文配套示例工作簿。