Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:将所有工作表文本转换为数字_Vba_Excel_Type Conversion - Fatal编程技术网

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

VBA:将所有工作表文本转换为数字,vba,excel,type-conversion,Vba,Excel,Type Conversion,我想用VBA将工作表中存储为文本的所有数字自动转换为数字。Excel似乎可以自动检测这些值,在VBA中有没有一种方法可以转换所有这些值 我发现以下解决方案可以将文本转换为数字,但我希望这适用于所有工作表,而不是指定范围,因为工作表是动态的 Range("F:F").Select With Selection Selection.NumberFormat = "General" .Value = .Value End With 有人有主意吗?猜测问题出在不同的十进制分隔符上,这在德国和

我想用VBA将工作表中存储为文本的所有数字自动转换为数字。Excel似乎可以自动检测这些值,在VBA中有没有一种方法可以转换所有这些值

我发现以下解决方案可以将文本转换为数字,但我希望这适用于所有工作表,而不是指定范围,因为工作表是动态的

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

有人有主意吗?

猜测问题出在不同的十进制分隔符上,这在德国和法国是一个相当大的问题。如果是这样的话,这是可行的:

with activesheet.usedRange
    .numberFormat = "General"
    .value = .value
End with
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
中所有没有公式的单元格。然后,如果通过将
更改为
单元格将变为数字,则会将其更改。

问题是否是因为您将
用作十进制分隔符?因此,
无法识别,Excel会自动将其格式化为
文本
?谢谢,就是这样!这个问题在德国经常发生,我想在法国也应该如此。