VBA 代码将唯一值从一个 Excel 文档移动到另一个具有多张工作表的 Excel 文档

VBA 代码将唯一值从一个 Excel 文档移动到另一个具有多张工作表的 Excel 文档

我完全是个菜鸟,基本上不懂任何 VBA,但如果有人能帮助我,我将不胜感激!我尽量说得尽可能清楚。

我每个月都会从 Dynamics 365 下载一个 Excel 文件(文件名称为(484trijtsfgnsrt9rjtritisrgjrkji37849.xlx)) 包含 11 列和大约 500-1000 行,其中包含有关我们客户的信息。它看起来像这样:

原始 Excel 文件的简化版本

每个月我需要做以下事情:

  1. 我在每个唯一客户之间插入一个空行。我使用以下脚本按客户 ID(在本例中为 B1:B9)排序:
Dim Rng As Range
Dim Wrng As Range
On Error Resume Next
xTitleID = "Test"
Set Wrng = Application.Selection
Set Wrng = Application.InputBox("Range", xTitleID, Wrng.Address, Type:=8)
Application.ScreenUpdating = False
For i = Wrng.Rows.Count To 2 Step -1
    If Wrng.Cells(i, 1).Value <> Wrng.Cells(i - 1, 1).Value Then
        Wrng.Cells(i, 1).EntireRow.Insert
    End If
Next
Application.ScreenUpdating = True
End Sub

这给了我一个如下所示的列表:

插入空白行后的原始 Excel 文件

  1. 这是比较棘手的部分;我需要从原始 Excel 文件中复制每个唯一客户并将其粘贴到分离另一个 Excel 文件中的工作表名为[月.xlx](8 月份该文件将被命名为八月.xlx,九月我会称之为九月.xlx) 在哪里total number of unique customers = total number of sheets.

我需要将每个客户粘贴到文件模板中第 9 至 18 行之间的新表中月.xlx例如本月;“August.xlx”。它看起来会像这样:

唯一客户已转移到新的 Excel 文件

有一些注意事项:

A) 每个月,客户数量都会发生变化。一个月可能有 487 位客户,下个月可能有 876 位客户,等等。

B) 8 月份显示的客户(例如“亚当”)可能不会在下个月(9 月份)显示。

C) 客户购买不规律。如果“Adam”在 8 月份的报告中购买了 3 次,那么他下个月可能会购买 1 次。而“Sara J.”在 8 月份的文件中购买了 1 次,那么 9 月份可能会购买 6 次,等等。

D) Dynamics 365 生成的原始 Excel 文件每个月都有一个唯一的随机名称。

如果有人有解决方案,我将非常感激,因为这个过程每个月要花费我很多小时手动完成。

谢谢您,并致以亲切的问候,

季度报告

相关内容