我正在尝试构建一个 UDF,它将查看单元格并删除以字母“El”开头的所有单词的第一个字符除了第一个单词。
单元格 A1 中的值将为:
El agua、El asma、El arca、Elhambre、El aguila、Elements
在将调用 UDF 函数的单元格 B1 中,我希望结果为:
El agua、las asma、l arca、lhambre、l aguila、lements
我的代码如下:
Function exceptFirst(MyString As String)
Dim X As Long
Dim Tempstr As String
Tempstr = ""
For X = 1 To Len(MyString)
If Mid(MyString, X, 2) = "El" Then
Tempstr = Tempstr
Else
Tempstr = Tempstr & Mid(MyString, X, 1)
End If
Next
exceptFirst = Tempstr
End Function
代码的作用是删除以“EL”开头的单词中的所有“E”,但并不排除 strong>第一个单词中的第一次出现。 非常感谢您的帮助,并提前致谢。
最佳答案
另一个 UDF,使用 Split
和 Join
Option Explicit
Option Compare Binary 'to ensure case sensitive
Function exceptFirst(S As String) As String
Dim V As Variant
Dim I As Long
Dim bFirst As Boolean
bFirst = False
V = Split(S, ", ")
For I = LBound(V) To UBound(V)
Select Case bFirst
Case False
If V(I) Like "El*" Then bFirst = True
Case True
If V(I) Like "El*" Then V(I) = Mid(V(I), 2)
End Select
Next I
exceptFirst = Join(V, ", ")
End Function
编辑 我假设您希望 El
在替换和检测中区分大小写第一个例子。如果情况并非如此,只需将 Option Compare
语句从 Binary
更改为 Text
关于string - Excel中删除除第一个单词之外的所有以特定字母开头的单词的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48461119/