Excelmacros:如果一个单元格的最后一个字符是“东西”,那么剪切它们并粘贴到别处

这是以前提出的问题的扩展,这个问题得到了惊人的回答,让我想到如何才能简化我的草率代码。

Dim i As Long, l As Long l = Cells(Rows.Count, 4).End(xlUp).Row For i = l To 1 Step -1 If Right(Cells(i, 4).Value, 4) = " XX " Then 'do some stuff to cut and paste that ending to ColumnE' Cells(i, 5) = " XX " 'i'm trying to do something like this to clear the final 4 characters. Right(Cells(i, 4).Value, 4).ClearContents End If Next i 

取左边的string,字符数等于总长度减4

 Cells(i,4).Formula = Left(Cells(i, 4).Value, len(Cells(i, 4).Value)-4) 

或者直接通过两个数组IFtesting

 Sub Recut() Dim lngCnt As Long lngCnt = Cells(Rows.Count, "D").End(xlUp).Row [e1].Resize(lngCnt, 1) = Application.Evaluate("=IF(RIGHT(D1:D" & lngCnt & ",4)="" XX "","" XX "","""")") [d1].Resize(lngCnt, 1) = Application.Evaluate("=IF(RIGHT(D1:D" & lngCnt & ",4)="" XX "",LEFT(D1:D1000,LEN(D1:D" & lngCnt & ")-4),D1:D" & lngCnt & ")") End Sub