Excel – 查找和replace部分string,但在同一单元格?
我有
Column A Red-US Blue-INT Purple-INT White-US-CA
尝试删除-us, int, ca, etc.
所以只有Red, Blue, Purple, etc.
不能使用修剪或替代公式,因为我希望它在列A中直接更换(replace)
谢谢!
如果“ – ”是一致的分隔符,那么它应该非常简单。
以下是您可以使用的一些命令:
string和操作
编辑:添加简单的代码
Sub textuptodash() i = 1 'start on row 1 Do While Not IsEmpty(Cells(i, 1)) 'do until cell is empty If Not InStr(1, Cells(i, 1), "-") = 0 Then 'if dash in cell Cells(i, 1) = Left(Cells(i, 1), InStr(1, Cells(i, 1), "-") - 1) 'change cell contents End If i = i + 1 'increment row Loop End Sub
尝试使用Split
如下:
Sub MySplit() Dim rngMyRange As Range, rngCell As Range Dim strTemp() As String, strDel As String, strTest As String Dim lngCnt As Long Set rngMyRange = Range("A1:A4") For Each rngCell In rngMyRange ' Split the test based on the delimiter ' Store entries in a vector of strings strTemp = Split(rngCell.Text, "-") ' Reset cell value and intermmediate delimiter rngCell.Value = vbNullString strDel = vbNullString ' Scan all entries. store all of them but not the last -* part For lngCnt = LBound(strTemp) To UBound(strTemp) - 1 rngCell = rngCell & strDel & strTemp(lngCnt) ' If we enter the loop again we will need to apend a "-" strDel = "-" Next lngCnt Next rngCell End Sub
输出:
Red Blue Purple White-US
如何分割最后一个条目并不完全清楚:假定您只想删除最后一个“ – *”位。 为了仅保留第一部分,注释For lngCnt
循环。
我希望这有帮助!