将 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#将一些属性的值从一个列表更改为另一个列表: