复制数据并比较 Excel VBA

Copy Data and Compare Excel VBA

不太确定这是否完全可行,但我知道它很可能是单独的。我在我们的网络上有一个启用宏的共享文档,希望能够看到已更新的内容。首先,有几点要指出;

  1. 有问题的作品sheet(组合sheet)有一个宏,它从其他 10 个作品sheet 中选择 data/range(从连接中放置)并显示到组合 sheet 中。这是因为其他 10 篇作品sheet 被其他 users/teams 更新了。这种组合 sheet 当然只是将所有数据显示在一个中。

  2. 我们现在要添加的是让我们知道最新条目是什么的东西。我看到一些代码会在已更新的字段的下一列上放置时间戳,这对我们不起作用。

  3. 有人提到将数据从组合 sheet(实时)提取到新工作簿。在本工作簿中有另一个 sheet 作为最后更新 sheet,然后另一个工作 sheet 进行比较并突出显示差异。

我知道这是一个不寻常的请求,不知道用什么方法(努力提高效率)来接受和执行这个请求。

任何 advise/tips 欢迎。

这是已经存在的代码片段;

`Sub sbCopyRangeToAnotherSheet()

Sheets("Business Development").Range("A2:T50").Copy
Sheets("Combined").Activate
Range("A4:T50").Select
ActiveSheet.Paste

Sheets("Compliance").Range("A2:T50").Copy
Sheets("Combined").Activate
Range("A52:T101").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub`

这就是我要做的:

1- 在您的 VBA 模块中添加一个 "hash" 函数,参见 Create a hash value .

2- 在数据的下一列(比如说 E 列)中添加此函数:=base64sha1(CONCATENATE(A10;B10;C10;D10)).
这将根据您在 A、B、C、D 列中的数据为您提供哈希码:每次值更改时,哈希码都会更改。

3- 在更新宏中,在进行更新之前,将 E 列复制到 F 列中。

4- 最后一件事是设置条件格式,检查 E 列中的值是否与 F 列中的不同形式值。

注意:如果您将 E 列的 header 设置为 Now(),并且在步骤 3- 中,您在 F 列之前插入了一个新列(而不是覆盖之前的散列代码),您将获得所有信息以了解更改了哪一行以及何时更改。

希望对您有所帮助!