使用以下代码将存储为文本的数字转换为数字。如何自动化此宏来触发单元格更改?
例如。一旦我将数据从其他来源粘贴到电子表格上,我希望Y:Y范围内新粘贴的单元格将存储为文本的数字转换为数字
尝试了一些不同的东西,但只有在将宏设置为手动运行时才会转换单元格。
Sub macro()
Range("Y:Y").Select
With Selection
Selection.NumberFormat = "0"
.Value = .Value
End With
End Sub
答案 0 :(得分:5)
将以下代码添加到您的工作表模块中,添加到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