如何替换vba中的单词?例如,我有一列单词但有些以U和E结尾,我想删除U和E,我该怎么做?
Cells.Replace What:="/*-", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
我用它来改变例如" AAA /& - "到" AAA"。我如何为" AAA U"做同样的事情。我不能使用相同的公式,因为" U"是一个普通的信?我的单词列由大约20多个以U结尾的不同单词组成,所以我也不能对单词进行硬编码。
请帮助,谢谢!
答案 0 :(得分:0)
只需循环遍历单元格,检查每个单元格的最后一个字符:
Sub Remove_E_and_U()
Dim r As Range
For Each r In ActiveSheet.UsedRange.Cells.SpecialCells(xlCellTypeConstants)
v = r.Value
If v <> "" Then
If Right(v, 1) = "U" Or Right(v, 1) = "E" Then
r.Value = Mid(v, 1, Len(v) - 1)
End If
End If
Next r
End Sub
修改#1:强>
要将宏限制为 F 列 H ,请替换:
ActiveSheet.UsedRange.Cells.SpecialCells(xlCellTypeConstants)
使用:
Range("F:H").Cells.SpecialCells(xlCellTypeConstants)
答案 1 :(得分:0)
也许正则表达式?
AVAssetExportSession
EDIT;如果要删除空格,这将保留空格Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
Pattern = "(\w+\s)(U|E)"
replacement = "$1"
RE.Pattern = Pattern
Regex = RE.Replace(Range("A1").Value, replacement)
将模式的AAA
部分移动到另一个(),如:\s