删除最后两个字符

我已经写了一些代码来通过一个循环,如果它发现在单元格中的“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) 

你会发现使用自动AutoFilterFind或变体将大大加快与范围的工作。 像下面的东西。

  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