Excel vba根据条件进行合并。

如果数据不多,就不需要通过字典过桥了。就借一张空工作表当桥梁。我使用SHEET3。

代码如下所示

子父子关系1()

出错时继续下一步

Sheets("Sheet3 ")单元格。Select。

选择。ListObject.QueryTable.Delete

纸张(“纸张3”)。挑选

使用ActiveSheet。ListObjects.Add(SourceType:=0,Source:=Array(Array( _

“ODBCDSN=Excel文件;dbq = c:\ documents and settings \ xd \ desktop \ workbook 1 . xlsm;default dir = c:\ documents and settings \ xd \ desktop;DriverId = 1046;max buffe " u

),数组(" rSize = 2048page time out = 5;"))、目的地:=Range("$A$1 "))。查询表

。CommandText = Array( _

“选择AA。a,AA。b,BB。a,BB。B " & ampChr(13)”& ampChr(10)来自AA AA,BB BB。Chr(13)”& ampChr(10)“AA在哪里。B = BB。一个”)

。PreserveFormatting = True

。BackgroundQuery = True

。refresh style = xlInsertDeleteCells

。SaveData = True

。AdjustColumnWidth = True

。RefreshPeriod = 0

。PreserveColumnInfo = True

。ListObjectDisplayName = "来自Excel文件的表查询"

以…结尾

工作表(“工作表1”)。挑选

对于J = 1到Sheet1。[b65536]。结束(xlUp)。排

对于I = 1到Sheet3。[b65536]。结束(xlUp)。排

如果Sheet1。单元格(J,4)& lt;& gt""和Sheet1。Cells(J,4) = Sheet3。单元格(I,4)和Sheet1。单元格(J,2)& lt;& gt活页3。细胞(I,2)然后

温度=温度& amp活页3。单元格(I,1)

如果…就会结束

然后

Sheet1。单元格(J,5) =温度

临时= " "

然后

末端接头