截断excel中的数据(删除前12个字符)

时间:2014-08-07 22:41:51

标签: excel vba excel-vba truncated

这是我到目前为止所做的:

Sub Truncate()
    Application.ScreenUpdating = False

    Dim LastHeader As Long
    Dim MyCell As Range
    LastHeader = Range("IV1").End(xlToLeft).Column

    For Each MyCell In Application.Intersect(Sheet6.UsedRange, Columns("I"))
        MyCell.Value = Right(MyCell.Value, Len(MyCell.Value) - 12)
    Next MyCell

    Application.ScreenUpdating = True

End Sub

我想让这个宏删除“I”列中的前12个字符,而其余部分则是如此。当我没有使用时(Len(MyCell.Value) - 12)我得到了这个宏用于其他列,而只是输入一个像Right(MyCell.Value,1)这样的数字,它保留了右边的第一个字母只要。但是对于此列,数据右侧的数字位数会有所不同,因此最好只删除数据左侧的指定数量的字符。

哦,顺便说一句,我得到的错误是run-time error '5'

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

几乎可以肯定,其中一个条目的字符数不超过12个,因此您最终以0或负数作为第二个参数调用Right

如果您想在12个或更少字符时将单元格留空,请尝试:

If (Len(MyCell.Value) > 12) Then
    MyCell.Value = Right(MyCell.Value, Len(MyCell.Value) - 12)
Else
    MyCell.Value = ""
End If