将 Excel 中的值从字符串更改为数字

Posted

技术标签:

【中文标题】将 Excel 中的值从字符串更改为数字【英文标题】:Change Value in Excel from String to Number 【发布时间】:2012-08-03 09:32:04 【问题描述】:

我在 VBA 中编写了一个脚本,将文本文件中的数字插入到工作表中。插入值后,Excel 建议我将值从字符串转换为数字。在单元格内,会出现一个绿色三角形。选择单元格后,您可以选择不同的选项来格式化单元格内的值。

我还尝试在 VBA 中使用 CDbl(string) 将值转换为双精度值,但没有任何反应。

更改NumberFormat 也不起作用。我在 VBA 和 Excel 中尝试了不同的值。

我也尝试在选择方法时录制宏,但宏中没有保存任何内容。

有人知道怎么做吗?

【问题讨论】:

最好修改将文本文件数据放入工作表的宏(脚本)。发布执行此操作的代码,我可以修改它以插入为数字。 【参考方案1】:

试试这个。我以单元格 A1 为例。此外,如果有十进制值,则使用 Double 代替 Long 并相应地更改 NumberFormat

Sub Sample()
    Dim clVal As Long

    With Sheet1.[a1]
        clVal = Val(.Value)
        .NumberFormat = "0"
        .ClearContents
        .Formula = clVal
    End With
End Sub

【讨论】:

谢谢。只是忘记了数组中的值包含一种类型。我在插入之前对其进行了转换,但是从循环再次访问后,它又是一个字符串。【参考方案2】:

这可能看起来有点傻,但你试过Range("A1").Value = Range("A1").Value吗?

更一般地,您可以循环遍历 myrange,假设它是您要修复的范围:

For Each c in myrange
   c.Value = c.Value
Next

【讨论】:

以上是关于将 Excel 中的值从字符串更改为数字的主要内容,如果未能解决你的问题,请参考以下文章

如何使用LINQ C#将一些属性的值从一个列表更改为另一个列表:

在java中读取多个excel表

为什么React / Redux表单中的输入会将数字更改为字符串?

Javascript - 将字符串中的所有数字更改为下标

将列表中的值更改为字典中指定的值?

Ruby .store 函数将哈希值从数组更改为单个值