Excel VBA:快速生成由输入的字母代表的单词

2022-11-16 12:51:49 浏览数 (1)

标签: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社群下载本文配套示例工作簿。

vba

0 人点赞