VBA:将所有工作表文本转换为数字

时间:2018-07-20 09:34:58

标签: excel vba excel-vba type-conversion

我希望将所有以文本形式存储在工作表中的数字自动转换为带有VBA的数字。 Excel似乎自动检测到这些数值,VBA中有一种方法可以转换所有这些数值?

Excel detect automatically numbers stored as text

我找到了以下将文本转换为数字的解决方案,但是我希望此方法适用于所有工作表而不是指定的范围,因为工作表是动态的。

Range("F:F").Select
With Selection
    Selection.NumberFormat = "General"
.Value = .Value
End With

有人有主意吗?

2 个答案:

答案 0 :(得分:1)

with activesheet.usedRange
    .numberFormat = "General"
    .value = .value
End with

答案 1 :(得分:1)

猜测问题出在不同的小数点分隔符中,这在德国和法国是一个很大的问题。如果是这种情况,这可行:

Option Explicit

Public Sub TestMe()

    On Error GoTo TestMe_Error

    Dim myCell As Range
    Dim tryCell As String

    For Each myCell In Cells.SpecialCells(xlCellTypeConstants)
        tryCell = Replace(myCell, ",", ".")
        If IsNumeric(tryCell) Then
            myCell = Replace(myCell, ",", ".")
        End If
    Next myCell

    On Error GoTo 0
    Exit Sub

TestMe_Error:

    MsgBox "No contant values!"

End Sub

代码检查ActiveSheet中所有没有公式的单元格。然后,如果通过将,更改为.,该单元格将变为数字,它将对其进行更改。