删除最后两个字符
我已经写了一些代码来通过一个循环,如果它发现在单元格中的“gb”我想删除该单元格中的最后两个字符。
这是循环
Sub RemoveUnits() Dim r As Range Dim x As Long For Each r In ActiveSheet.UsedRange w = r.Value If InStr(w, "gb") > 0 Then [INSERT CODE HERE] End If Next r End Sub
我坚持的位是删除最后两个字符的代码。 我知道这应该是在这个如果陈述,但所有我在网上find的答案似乎并没有工作。
感谢任何帮助! 谢谢。
你可以使用一个简单的Mid()函数
r = Mid$(r, 1, len(r)-2)
或左()
r = Left$(r, len(r)-2)
正如vba4allbuild议,但小检查。 当使用Mid或子string检查长度时,总是一个好习惯:)
r = IIf(Len(r) > 2, Mid(r, 1, Len(r) - 2), r)
你会发现使用自动AutoFilter
, Find
或变体将大大加快与范围的工作。 像下面的东西。
Sub RemoveUnits() Dim X Dim lngRow As Long Dim lngCol As Long X = ActiveSheet.UsedRange.Value2 For lngRow = 1 To UBound(X) For lngCol = 1 To UBound(X, 2) If InStr(X(lngRow, lngCol), "gb", vbBinaryCompare) <> 0 Then X(lngRow, lngCol) = Left$(X(lngRow, lngCol), Len(X(lngRow, lngCol)) - 2) Next Next ActiveSheet.UsedRange.Value2 = X End Sub