在VBA和Excel中进行Web抓取

我正在寻找从网站下载数据表到Excel中,并将特定的数据片段放入一个单独的工作表来创build一个数据库。 我无法parsing在Excel中导入到一个单元格中的数字。 例如,在网站上写入的数字“-7-110”被input到Excel中的一个单元格中,作为“= -7-110”,产生单元格内容“-117”。 当单元格突出显示时,原始= -7-110显示在公式栏中,但我不知道如何:a)按原样input数据并通过excelclosures自动成形;或者b)抓取特定单元格内容没有从细胞形成公式。

任何帮助表示赞赏 – 谢谢!

贾森

微软提供了三种方法来反制内置的数字格式:

避免自动数字格式化如果您想要键入一个值,如10e5,1p或1-2,并且您不希望将该值转换为内置数字格式,请将该数字键入为文本值。 要input一个数字作为文本值,使用下面的任何适当的方法。

方法1
在条目的开头放置一个空格。 注意:如果条目类似以科学记数法格式化的数字,此方法不起作用。 例如,键入1e9会产生一个科学数字。

方法2

  1. select一个单元格区域,然后单击格式菜单上的单元格。
  2. 点击数字标签。
  3. 单击文字,然后单击确定。

此方法允许您以文本forms将所选单元格中的数据键入。 在单元格中键入数字之前,您必须执行这些步骤。

方法3
在撇号之前input。
例如,键入以下内容:1 p

如果您在工作簿中进行更改,Adam已经涵盖了这些选项。

当然,你也可以用VBA准备直接从VBA导入数据的区域

.NumberFormat 

属性。

要将范围或单元格的NumberFormat属性设置为“Text”,可以使用

 .NumberFormat="@" 

例如

 Range("C:C").NumberFormat = "@" 

将列C中的所有单元格转换为“文本”格式。

至于检索“-7-110”如果它被input到一般格式的单元格(并显示公式的结果,如-117),您可以访问

 .Formula 

电池的性质。

例如,如果上面的公式被input到单元格C1,下面的VBA代码

 Range("C1").Formula 

或等同地

 Cells(1, 3).Formula 

会返回string“= -7-110”。