VBA-如何将单元格值从文本转换为数字
我必须创建带有导出数字的列,这些数字存储为文本 我试着用这个代码把这些数据转换成数字VBA-如何将单元格值从文本转换为数字,vba,excel,format,number-formatting,Vba,Excel,Format,Number Formatting,我必须创建带有导出数字的列,这些数字存储为文本 我试着用这个代码把这些数据转换成数字 Sub FormatColumns() Columns(9).NumberFormat = "0" Columns(10).NumberFormat = "0" End Sub 它已经正确地完成了这项工作(或者看起来是这样),但是我仍然不能像处理数字一样处理这些数据,但是Excel告诉我,它是作为数字存储的 但当我通过公式=ISTEXT()验证它时,它总是显示为TRUE 你能帮我一下吗?我在谷歌上找到
Sub FormatColumns()
Columns(9).NumberFormat = "0"
Columns(10).NumberFormat = "0"
End Sub
它已经正确地完成了这项工作(或者看起来是这样),但是我仍然不能像处理数字一样处理这些数据,但是Excel告诉我,它是作为数字存储的
但当我通过公式=ISTEXT()
验证它时,它总是显示为TRUE
你能帮我一下吗?我在谷歌上找到的所有教程和建议都是通过格式化单元格或=VALUE()
,但VALUE function对我不起作用,它显示了我的价值
提前谢谢你 通过宏将存储为文本的数字转换为数字
Sub macro()
Range("F:F").Select 'specify the range which suits your purpose
With Selection
Selection.NumberFormat = "General"
.Value = .Value
End With
End Sub
Hilight您要“修复”并运行的数字: 另一个解决办法是:
Sub Macro1()
Range("A:A").Select 'Range of values you need converted
For Each Cell In Selection
Cell.Value = (Cell.Value * 1)
Next
End Sub
非vba等效解决方案是在单元格中输入“1”,复制该单元格,选择要转换为数字的范围,单击鼠标右键,然后按“特殊粘贴->乘法”
这将保留该范围内的所有值为数字,而不更改格式。用ISTEXT测试
确保您的设置也与逗号替换小数相匹配,否则可能会继续出现问题。首先检查整个相关区域是否设置为数字格式 选择相关区域并对
进行全局替换,无需任何更改(“空格”为“留空”)。然后根据您的区域设置,尝试将,
全局替换为
然后在备用单元格中输入1
,复制该单元格,选择整个相关区域并粘贴特殊、选项、乘法
如果这不起作用,请将
切换回,
并重复粘贴特殊操作。这是逗号,需要是
,因此405,90
=405.90必须替换“,”~>”
它是逗号,需要是
405,90
=405.90
,不幸的是,这在这种情况下不起作用。空格和逗号必须是正确的。但非常感谢您的建议,因为它在其他情况下也有效。正如我在@Rick的帖子中所写,它在这个情况下不起作用。有空格和逗号,必须更正。但是非常感谢你的建议,因为它在其他情况下也有效。
Sub Macro1()
Range("A:A").Select 'Range of values you need converted
For Each Cell In Selection
Cell.Value = (Cell.Value * 1)
Next
End Sub
Sub FormatColumns()
With Columns("i:j")
.Replace ",", "."
.NumberFormat = "#,###.00"
End With
End Sub