我有一个简单的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
答案 0 :(得分:0)
将范围更改为您所需的范围。
DataSheet.Range("A1").NumberFormat = "@"
答案 1 :(得分:0)
如果可能的话,我发现更容易以正确的格式获取数据,即在数字周围添加等号和引号以使Excel直接将其作为文本加载
其他方法 如果您有权访问创建CSV的源,则可以更改CSV语法。 用双引号将每个值括起来,并在等号前面加上=“ 00001”