我已经编写了一些代码来完成循环,如果在单元格中找到“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
我坚持的位是删除最后两个字符的代码。我知道它应该在if if语句中,但我在网上找到的所有答案似乎都不起作用。
感谢任何帮助!感谢。
答案 0 :(得分:2)
答案 1 :(得分:0)
正如vba4all所建议的,但是检查很小。使用Mid或substring检查长度时,这总是一个很好的做法:)
r = IIf(Len(r) > 2, Mid(r, 1, Len(r) - 2), r)
答案 2 :(得分:0)
您会发现使用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