【发布时间】:2022-10-17 21:05:44
【问题描述】:
如果我在 A 列中输入带有空格的单词(例如:L3 、FMA 、Nest 等),则会出现错误:“运行时错误:'-2147417848 (80010108)' :
对象'Range'的方法'HorizontalAlignment'失败“。我该如何解决这个问题?
我有这个宏:
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Application.ScreenUpdating = False
Dim rng As Range, v As Variant
For Each rng In Target
v = Split(rng, " ")
If UBound(v) <> 1 Then Exit Sub
If Right(rng, 1) <> "m" Then
rng = v(1) & " " & v(0)
NumberFormat = "@"
With Target
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Target.Font
.Name = "Calibri"
.Size = 11
End With
End If
Next rng
Application.ScreenUpdating = True
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.
【问题讨论】:
-
Application.EnableEvents = False你正在进入一个无限循环。最后带有“m”的值不会触发更改事件或任何没有一个空格的事件。 -
@Warcupine 我该怎么做?我试图在
If Right(rng, 1) <> "m" Then之后粘贴Application.EnableEvents = False。和Application.EnableEvents = True在.Size = 11 End With之后。但是错误再次出现。你能把完整的代码或一段代码发给我吗?