VBA将存储为文本的数字转换为单元格更改时的数字

bri*_*ttd 0 excel vba excel-vba

使用以下代码将存储为文本的数字转换为数字.如何自动化此宏来触发单元格更改?

例如.只要我将数据从其他来源粘贴到电子表格上,我希望Y:Y范围内新粘贴的单元格将存储为文本的数字转换为数字

尝试了一些不同的东西,但只有在设置宏手动运行时才会转换单元格.

Sub macro()

Range("Y:Y").Select 
With Selection
    Selection.NumberFormat = "0"
    .Value = .Value
End With

End Sub
Run Code Online (Sandbox Code Playgroud)

Sha*_*ado 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
Run Code Online (Sandbox Code Playgroud)