VBA查询表在Excel中将文本转换为数字

时间:2015-11-12 20:26:20

标签: excel vba excel-vba

我有一个简单的VBA代码,可以从谷歌财务中获取股票价格。当我在列中返回结果时,excel将行转换为数字。这些是逗号分隔值,看起来像189,209.97,210.03,209.97,210,300,它工作正常(保留为文本)。但偶尔值为190,210,210,210,210,000,在这种情况下,excel将其转换为一个数字(不再是逗号),这会混淆我的下游处理,因为我需要将文本转换为列。有什么方法可以强制excel通过VBA接受所有值只作为文本?这是代码的样子:

With DataSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("a1"))
        .BackgroundQuery = True
        .TablesOnlyFromHTML = False
        .Refresh BackgroundQuery:=False
        .SaveData = True
End With

2 个答案:

答案 0 :(得分:0)

将范围更改为您所需的范围。

DataSheet.Range("A1").NumberFormat = "@"

答案 1 :(得分:0)

如果可能的话,我发现更容易以正确的格式获取数据,即在数字周围添加等号和引号以使Excel直接将其作为文本加载

Ref:https://superuser.com/questions/307496/how-can-i-set-excel-to-always-import-all-columns-of-csv-files-as-text

其他方法 如果您有权访问创建CSV的源,则可以更改CSV语法。 用双引号将每个值括起来,并在等号前面加上=“ 00001”

相关问题