vba - 在excel中截断数据(删除前12个字符)

标签 vba excel 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'
谢谢你的帮助 :)

最佳答案

几乎可以肯定其中一个条目包含 12 个或更少的字符,因此您最终调用了 Right使用 0 或负数作为第二个参数。

如果您想在有 12 个或更少字符的情况下将单元格留空,请尝试:

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

关于vba - 在excel中截断数据(删除前12个字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25193424/

相关文章:

javascript - Angularjs 数字过滤器无法与 ui 网格正常工作

mysql - 为什么无法将数据加载到mysql :

vba - 从vba中的write语句中删除双引号

vba - 使用 VB 导入而不是手动导入

excel - 我怎样才能总结一列大小时:mins:seconds figures in excel?

vba - 单击 Excel 中的超链接以在不同的工作表上设置自动过滤器

java - Project Euler #6 两个代码,不同的答案仅适用于大输入。为什么?

wpf datepicker 显示截断的月份

vba - 应用程序定义或对象定义的错误 (1004) - Excel VBA

ms-access - 使用 VBA 设置子表单记录中的字段格式