使用Excel VBA显示相邻单元格中单元格的值更改

我有一个excel工作表,通过使用excel vba查询亚马逊API来显示一列中某些项目的价格。 可能会加class的价格。 所以我试图显示价格的差异,每次我运行我的macros,在一个单元格的显示价格单元格相邻。 但我不知道如何做到这一点。 任何机构可以指导我如何实现这一目标?

这只是一个示例,它必须适应您的架构和数据布局。 假设价格存储在A1A100A中 。 假设你已经有一个名为RefreshData()的macros来更新A列。 在B1中input:

=C1-A1 

并抄下来。 此macros在刷新数据之前将C中的当前值存储在:

 Sub DoUpdate() Range("A1:A100").Copy Range("C1") Call RefreshData End Sub 

B栏将显示价格差异。

像这样的东西?

假设您的数据在A2:A10的范围内

 Dim rng as Range Set rng = Range("A2:A10") rng.Offset(0,1).Value = rng.Value 

在运行原始macros之前运行此操作,以便在值更改之前将值存储在相邻列中。 您可能需要使范围dynamic,这取决于您的需求。

没有看到你的代码,我不能给出详细的答案。 不过,我遇到过一次类似的问题,不是使用Amazon API,而是使用SharePoint连接。

如果亚马逊api有点类似于共享点的东西,我想它刷新单元格,当你点击“更新”,或运行更新子。 在这种情况下,您将不得不创build一个数组来存储vba中的旧价格(非常缓慢的过程),然后将它们写入到表中,或者创build一个单独的选项卡,在其中存储item-lastPrice组合。

最后,我不仅存储了当前的价格,而且还存储了所有价格和价格的date/时间,以便能够看到随时间的变化。

对于使用VBA复制数据本身,上述任何一种方法都应该工作。 在我最初的代码中,我使用了vba loops :-p,但是使用excelfunction进行复制要快得多。