使用以下代码将存储为文本的数字转换为数字。我将如何自动化此宏以触发单元格更改?
例如。一旦我将数据从另一个来源粘贴到电子表格中,我希望 Y:Y 范围内新粘贴的单元格将存储为文本的数字转换为数字
尝试了一些不同的方法,但只有在将宏设置为手动运行时才会转换单元格。
Sub macro()
Range("Y:Y").Select
With Selection
Selection.NumberFormat = "0"
.Value = .Value
End With
End Sub
最佳答案
将下面的代码添加到工作表的模块中,添加到 Worksheet_Change
事件。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Y:Y")) Is Nothing Then
Application.EnableEvents = False
With Target
.NumberFormat = "0"
If InStr(.Value, "`") = 1 Then ' if leading character is apostrophe
.Value = Mid(.Value, 2) ' start from second character
Else ' regular number
.Value = .Value
End If
End With
End If
Application.EnableEvents = True
End Sub
关于VBA 将存储为文本的数字转换为单元格更改时的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47201546/