首页 > 解决方案 > 当数字包含逗号时,数字格式为文本的 VBA 问题

问题描述

我使用 vba 脚本打开另一个工作簿。此工作簿采用 .XLS 格式,数据库中的内容存储如下:

"Name1"  "0"  "7,98"   
"Name2"  "5"  "1"  
"Name3"  "2"  "7,1"  

使用 VBA 脚本打开工作簿时,包含逗号的每个单元格都被解释为文本并显示以下警告: 此单元格中的数字被格式化为文本或前面带有撇号此单元格中的数字格式为文本或前面带有撇号

奇怪的是,如果我通过双击打开文件,数字只是格式化为文本并且不显示任何错误。我想,Excel 正在做一些解释,这是行不通的。
我的代码是:

Dim WorkBookImport As Workbook
Name = Application.GetOpenFilename()
If Name <> False Then
   Set WorkBookImport = Workbooks.Open(Filename:=Name)
End If

我尝试了一切:

Range(mycolumn).Value = Range(mycolumn).Value 

循环 CDbl(.Value)
Range(mycolumn).TextToColumns ...

没有任何效果;(请帮忙!

标签: excelvbanumber-formattingxls

解决方案


这是细胞形成的问题。您应该使用 NumberFormat 来更改它。

Sub FormatNumber()
ThisWorkbook.Worksheets("YourWorkbook").Range("YourRange") = CDbl(ThisWorkbook.Worksheets("YourWorkbook").Range("YourRange"))
ThisWorkbook.Worksheets("YourWorkbook").Range("YourRange").NumberFormat = "General"
End Sub

如果您遇到相反的问题,您也可以使用 NumberFormat 将其更改为文本,在这种情况下,您可以使用NumberFormat = "@"


推荐阅读