Vba 我需要删除已选定的特定单元格区域的最后7个字符

Vba 我需要删除已选定的特定单元格区域的最后7个字符,vba,selection,Vba,Selection,我正在尝试删除最后7个字符,它们在我运行的报告中是乱七八糟的,但只针对我在电子表格中选择的单元格。不过,我还是不断遇到运行时错误13 Sub Mitts() With Selection .Value = Left(.Value, Len(.Value) - 7) End With End Sub 有人能帮我找出错误吗?如果选择范围中有多个单元格,.Value返回一个数组,而不是单个值。最好的方法是循环选择中的所有单元格: Sub Mitts() Dim target A

我正在尝试删除最后7个字符,它们在我运行的报告中是乱七八糟的,但只针对我在电子表格中选择的单元格。不过,我还是不断遇到运行时错误13

Sub Mitts()

With Selection
    .Value = Left(.Value, Len(.Value) - 7)

End With
End Sub

有人能帮我找出错误吗?

如果选择范围中有多个单元格,
.Value
返回一个数组,而不是单个值。最好的方法是循环选择中的所有单元格:

Sub Mitts()

    Dim target As Range
    For Each target In Selection
        With target
            If Len(.Value) > 7 Then
                .Value = Left$(.Value, Len(.Value) - 7)
            End If
        End With
    Next target

End Sub

请注意,在尝试截断长度之前,还应测试长度,以避免在空单元格或没有足够文本截断的单元格上出现“无效过程调用或参数”异常。

欢迎使用Stackoverflow<为活动工作表中的每个i编码>。选择(新行)i.Value=左(i.Value,Len(i.Value)-7)(新行)下一个i--用新行替换“(新行”);-)我应该在哪里添加它呢?它位于
Sub
End Sub
行之间。把剩下的拿走。