在Excel中导入Web数据而不覆盖历史记录

时间:2016-12-14 10:29:20

标签: excel web-scraping excel-import

我正在从在线电话日志中将数据导入excel。它基本上是这样的:

Date        Time    Duration    Local Identity          Number
14.12.2016  11:11   00:03       88821354@192.168.1.2    22252797
14.12.2016  10:33   00:02       88821354@192.168.1.2    25322678

我已成功将数据导入Excel。然而,电话日志本身真的很烦人,因为它只保留最近一次拨打任何给定号码的数据。即如果我拨打上面列表中的第二个号码(25322678),我将丢失前一个呼叫的数据(在10:33进行)。这将在Excel中反映出来。

我想知道是否有一种方法可以连续导入新数据而不会覆盖旧数据。在我看来,通过调整导入设置无法做到这一点,所以我正在考虑不同的解决方法。尽管如此,我还是无法想出任何远程能力。

2 个答案:

答案 0 :(得分:2)

此解决方案创建一个名为“PhoneLog”的工作表,以保存“From web”功能的累积结果。

此过程假定“From web”函数的结果位于名为“WebFrom”的工作表中,范围A:E从行{开始{1}} (根据需要进行更改)

此过程必须位于包含“From web”功能结果的同一工作簿中。

更新“From web”功能之前第一次运行此过程,以便将实际结果添加到“PhoneLog”。然后在“From web”功能之后立即运行此过程。

如果在工作簿中找不到“PhoneLog”工作表,则此过程将创建“PhoneLog”工作表。然后它将“PhoneLog”的所有新记录添加到“WebFrom”工作表(根据需要进行更改)

1

建议阅读以下页面以深入了解所使用的资源:

Excel ObjectsFor Each...Next StatementIf...Then...Else Statement

On Error StatementOption Explicit Statement

Range Object (Excel)Range.CurrentRegion Property (Excel)Range.Offset Property (Excel)

Range.PasteSpecial Method (Excel)Range.SpecialCells Method (Excel)

Using ArraysVariables & ConstantsWith StatementWorkbook Object (Excel)

Worksheet.AutoFilter Property (Excel)Worksheet.Sort Property (Excel)

WorksheetFunction Object (Excel)

答案 1 :(得分:1)

复制旧数据,刷新,复制新数据,删除重复项

我可能会使用这种方法:

  1. 在每次刷新新查询之前,我会将现有数据复制到某些"所有数据"片材。
  2. 刷新“来自Web查询”
  3. 将步骤2中的新数据复制到"所有数据"表格,贴在底部。
  4. 删除重复项。
  5. 替代方案:HTTP请求或Internet Explorer导航

    考虑使用 HTTP请求来获取响应文本,而不是使用Excel导入数据功能。或者,您可以使用 Internet Explorer 对象导航到该站点。

    然后,您可以将响应文本分配给 HTMLDocument 并获取所需的数据。或者您可以使用一些正则表达式来提取它。

    然后您可以导入所有数据并在之后删除重复项,或者您可以在导入之前进行扫描,以查看记录是否不存在,然后仅导入它。