[英]VBA Querytables converting text to number in Excel
我有一个简单的VBA代码,可从Google Finance获取股价。 当我将结果返回到列中时,excel会将行转换为数字。 这些是逗号分隔的值,看起来像189,209.97,210.03,209.97,210,300,并且可以正常工作(以文本形式保留)。 但是有时值是190,210,210,210,210,000,在这种情况下excel将其转换为数字(不再有逗号),这使我的下游处理混乱,因为我需要将文本转换为列。 有什么方法可以通过VBA强制Excel仅接受所有值作为文本? 代码如下所示:
With DataSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("a1"))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.Refresh BackgroundQuery:=False
.SaveData = True
End With
将范围更改为所需的范围。
DataSheet.Range("A1").NumberFormat = "@"
如果可能,我发现更容易以正确的格式获取数据,即在数字周围添加等号和引号以使Excel直接将其作为文本加载
参考: https : //superuser.com/questions/307496/how-can-i-set-excel-to-always-import-all-columns-of-csv-files-as-text
其他方法如果您有权访问创建CSV的源,则可以更改CSV语法。 每个值都用双引号引起来,并在等号前面加上=“ 00001”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.