【发布时间】:2017-05-06 03:29:17
【问题描述】:
我有一个 VBA 脚本,它成功地从 html 中提取数据并将其转储到 Excel 工作表中。当某些数据是一个非常大的整数(30 位 + 数字)时,我的问题会出现,Microsoft excel 默认将其存储为科学记数法并且我遭受数据丢失。
所以数据是这样存储在html中的:
<tr>
<td>
11111111111111111111111111
</td>
</tr>
所以我的脚本循环遍历行 (tr) 并为每个单元格 (td) 将值拉到我的工作表中,如下所示:
Set mydata = appIE.Document.getelementsbytagname("tr")
x=1
For Each e In mydata
Set mytd = e.getelementsbytagname("td")
For Each c In mytd
Cells(x, 2).Value2 = e.Cells(1).innerText
x = x + 1
Next c
Next e
所以我认为发生错误是因为我使用 .value2 将数据存储在我的单元格中,所以我尝试切换到重现错误的 .value 和无法运行的 .text。如何在不丢失数据的情况下正确将此数据类型设置为 long 或 text?
【问题讨论】:
-
您永远不会在
For each循环中使用c。你的意思是? -
Excel 最多只能处理 15 位的精度。如果您有大量数字并希望它们准确表示,请将单元格格式设置为文本,然后填充该值。
-
感谢 cmets。我删除了一些 c 的私有代码行,忘记了 :) 猜我会使用文本!