我意识到这是一个重复的问题,但this问题中提到的解决方案并不适合我。
我目前的代码如下
Sub ConvertTextToNumber()
Dim Area As Range, C As Range
Set Area = Sheets("Tank 3").Range("C7:L7,B8:B17,C20:L20,B21:B69")
For Each C In Area
If WorksheetFunction.IsNumber(Celle) = False And C <> "" Then
C.NumberFormat = "0.0"
C.Value = C.Value + 0
End If
Next C
End Sub
这对整数有效,但是当存储为文本的数字是小数(如0,1或0,2)时,它只是将数字分别转换为1或2。
在将NumberFormat设置为数字或一般后,我尝试使用C.value = c.value
,但这对我没有任何作用
更新:问题似乎在于分隔符。我必须使用“,”作为小数分隔符,这会导致子故障。如果我将小数点分隔符交换为“。”该子运行正常。
答案 0 :(得分:2)
你可以change the separators through VBA:
Sub ChangeSeparator()
Application.DecimalSeparator = "."
Application.ThousandsSeparator = ","
Application.UseSystemSeparators = False
ConvertTextToNumber
Application.UseSystemSeparators = True
End Sub
答案 1 :(得分:2)
只需使用Sub ConvertTextToNumber()
Dim Area As Range, C As Range
Set Area = Sheets("Tank 3").Range("C7:L7,B8:B17,C20:L20,B21:B69")
For Each C In Area
C.FormulaLocal = C.Value
Next
End Sub
根据您的区域设置自动将字符串转换为数字:
UPDATE @Table_B
SET col_1 = a.col_1
FROM (SELECT SUM(col_1) AS col_1 FROM @Table_A WHERE a.[id] = @id) a
WHERE [id] = @id
答案 2 :(得分:1)
您可以使用一个小技巧,那就是将所有数字作为文本导入到您的代码中,然后操纵它并将其吐出来。逗号混淆了英语转换,并将2,0视为20.无论如何,这里有你如何做到这一点
404 Page Not Found
The page you requested was not found.
folder