我有一个可以批量替换的 vba 代码。
我想(通过 VBA 或公式)将每个单元格的第一次出现的“%”替换为“(”,第二次出现的“%”替换为“)”。
我的数据在 B 列中。
这是我的 VBA 代码:
Sub Multi_FindReplace()
Dim sht As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long
fndList = Array("_", "VOSTFR.mp4", "VF.mp4")
rplcList = Array(" ", "VOSTFR", "VF")
'Loop through each item in Array lists
For x = LBound(fndList) To UBound(fndList)
'Loop through each worksheet in ActiveWorkbook
For Each sht In ActiveWorkbook.Worksheets
sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next sht
Next x
End Sub
谢谢! :)
最佳答案
在单元格 C1
中输入以下任一公式:
=SUBSTITUTE(SUBSTITUTE(B1,"%","(",1),"%",")",1)
或
=REPLACE(REPLACE(B1,FIND("%",B1),1,"("),FIND("%",REPLACE(B1,FIND("%",B1),1,"(")),1,")")
根据需要拖动/复制。请参阅图片以供引用。
如果少于两个%
,公式将抛出错误。因此,为了避免错误,请在公式中使用 IFERROR
为
=IFERROR(REPLACE(REPLACE(B1,FIND("%",B1),1,"("),FIND("%",REPLACE(B1,FIND("%",B1),1,"(")),1,")"),"")
关于vba - 用不同的字符替换第一次和第二次出现的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326537/