将存储为文本的数字转换为Excel VBA中数字的最简单方法

Ola*_*and 3 excel vba excel-vba

我试图将此文本转换为数字:

在此处输入图片说明

我尝试了不同的公式,但是Excel无法识别该格式。但是,使用下面的代码只能转换前三个数字,并删除其余的数字。

Sub ConvertTextNumberToNumber()
For Each WS In Sheets
    On Error Resume Next
    For Each r In WS.UsedRange.SpecialCells(xlCellTypeConstants)
        If IsNumeric(r) Then r.Value = Val(r.Value)
    Next r
Next WS
End Sub
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样

在此处输入图片说明

有没有人在不删除任何数字的情况下对此进行轻松修复?

R3u*_*3uK 6

转换以文本形式存储的数字的最简单方法是将其乘以1
因此请尝试此操作If IsNumeric(r) Then r.Value = (r.Value)*1
或者您也可以复制粘贴乘以1的粘贴,这也有效!;)

Sub ConvertTextNumberToNumber()
For Each WS In Sheets
    On Error Resume Next
    For Each r In WS.UsedRange.SpecialCells(xlCellTypeConstants)
        If IsNumeric(r) Then r.Value = (r.Value)*1
        ''Or test the values in the next column on the right
        'If IsNumeric(r) Then r.Offset(0,1).Value = (r.Value)*1
    Next r
Next WS
End Sub
Run Code Online (Sandbox Code Playgroud)