如果我输入或粘贴一个单词或一个数字,就会出现错误:“运行时‘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