VBA:将所有工作表文本转换为数字
我想用VBA将工作表中存储为文本的所有数字自动转换为数字。Excel似乎可以自动检测这些值,在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 有人有主意吗?猜测问题出在不同的十进制分隔符上,这在德国和
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会自动将其格式化为文本
?谢谢,就是这样!这个问题在德国经常发生,我想在法国也应该如此。