如何修复宏错误:“运行时‘9’:下标超出范围”?

如何修复宏错误:“运行时‘9’:下标超出范围”?

如果我输入或粘贴一个单词或一个数字,就会出现错误:“运行时‘9’:下标超出范围”。必须可以输入一个字符,但不能转换。如果从列中删除值,也会出现错误:“运行时‘9’:下标超出范围”。需要能够从单元格中删除值。我需要能够输入和粘贴所有内容,但不能转换。仅转换(任意数字)m(任意数字)M. 可以删除和编辑单元格内的数据。

我有这个宏:

Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Target.Column <> 1 Then Exit Sub
    Dim v As Variant
    v = Split(Target, " ")
    If Right(Target, 1) <> "m" Then
        Target = v(1) & " " & v(0)
    End If
End Sub

此宏将数据转换为(任意数字)m(任意数字)M在右边。

例如:

L3 280M
500m FMA
Nest 475m
340m Pr6
720M uT10
etc.

转换成:

L3 280M
FMA 500m
Nest 475m
Pr6 340m
uT10 720M
etc.

答案1

尝试这个:

Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Target.Column <> 1 Then Exit Sub
    Dim v As Variant
    v = Split(Target, " ")
'===
    If UBound(v) <> 1 Then Exit Sub
'===
    If Right(Target, 1) <> "m" Then
        Target = v(1) & " " & v(0)
    End If
End Sub

相关内容