我有一张excel表,通过使用excel vba查找amazon API,显示列中某些项目的价格。价格可能会加班。所以我试图在每次运行我的宏时,在显示价格的单元格附近的单元格中显示价格的差异。 但我不知道如何实现这一目标。任何人都可以指导我如何实现这一目标吗?
答案 0 :(得分:1)
这样的东西?
我们假设您的数据在A2:A10
范围内{{1}}
在运行原始宏之前运行此操作,以便在值更改之前将值存储在相邻列中。您可能需要根据需要使范围动态化。
答案 1 :(得分:1)
这只是一个示例,它必须适应您的架构和数据布局。假设价格存储在 A 列 A1 到 A100 中。假设您已经有一个名为 RefreshData()的宏来更新列 A 。在 B1 中输入:
=C1-A1
并复制下来。此宏在刷新数据之前将当前值存储在 C 列中:
Sub DoUpdate()
Range("A1:A100").Copy Range("C1")
Call RefreshData
End Sub
列 B 将显示价格差异。
答案 2 :(得分:0)
没有看到你的代码,我无法给出详细的答案。但是,我遇到过类似的问题,虽然不是使用Amazon API,而是使用sharepoint连接。
如果亚马逊api有点类似于sharepoint的东西,我想当你点击"更新"或运行更新子时,它会刷新单元格。在这种情况下,您将不得不创建一个数组来存储旧的价格在vba(非常慢的过程),然后将它们写入您的表,或创建一个单独的选项卡,您存储item-lastPrice组合。
我最终不仅存储当前价格,还存储所有价格和价格的日期/时间,以便能够看到随时间的变化。
对于使用VBA复制数据本身,上述任何一种方法都应该有效。在我的初始代码中,我使用了vba循环:-p,但使用excel功能进行复制要快得多。