Access Excel VBA在列下查找具有相同值的单元格

Access Excel VBA在列下查找具有相同值的单元格,excel,vba,ms-access,Excel,Vba,Ms Access,我使用Access VBA创建Excel导出数据。但我需要找到相同的值并对它们进行排序。我想在A下找到所有相同的值,然后用它们的规格彼此相邻地剪切它们。下面是一个例子,我想做什么。我写了一些VBA代码,但速度非常慢,需要10-15分钟。我有3000个专栏 从这一点: A B C A B C D E 1值1规格1规格1 2值2规格2规格2 3值1规格3规格3 4值3规格4规格4 对

我使用Access VBA创建Excel导出数据。但我需要找到相同的值并对它们进行排序。我想在A下找到所有相同的值,然后用它们的规格彼此相邻地剪切它们。下面是一个例子,我想做什么。我写了一些VBA代码,但速度非常慢,需要10-15分钟。我有3000个专栏

从这一点:

A         B           C
A         B           C           D            E
1值1规格1规格1

2值2规格2规格2

3值1规格3规格3

4值3规格4规格4

对于这一点:

A         B           C
A         B           C           D            E
1值1规格1规格1规格3规格3(来自A3)

2价值2

3价值3

4值

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "qryExportPassiv", "C:\Temp\ExportPassivEExi.xls", False

Set objExcel = New Excel.Application

objExcel.Visible = True
objExcel.DisplayAlerts = False

Dim wb As Excel.Workbook
Dim wb2 As Excel.Workbook
Dim ws As Worksheet

Set wb = objExcel.Workbooks.Open("C:\Temp\ExportPassivEExi.xls")


wb.Activate

intlengthwb = wb.Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row

Debug.Print intlengthwb

k = 2
Z = 1

Do While (k < intlengthwb)

For j = 2 To intlengthwb

If wb.Sheets(1).Cells(k, 1).Value = wb.Sheets(1).Cells(j, 1).Value Then
Z = Z + 1
Debug.Print Z
End If

Next j

k = k + 1

Loop
DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel9,“qryExportPassive”,“C:\Temp\ExportPassivEExi.xls”,False
Set objExcel=New Excel.Application
objExcel.Visible=True
objExcel.DisplayAlerts=False
将wb设置为Excel.工作簿
将wb2设置为Excel.工作簿
将ws设置为工作表
设置wb=objExcel.Workbooks.Open(“C:\Temp\exportpassivereexi.xls”)
wb.激活
intlengthwb=wb.Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
调试。纵向打印
k=2
Z=1
做While(k
我是用RecordSet做的,只用了10秒。

速度很慢,但可以用?需要3个小时,不可能那么长。