我无法将多张纸(可能超过2张)合为一体。 基本上,我的工作表具有相同的列,我想要将它们合并。
示例:这只是一种情况,但是我们可以为两张以上的纸提供动态代码吗,唯一ID可以随机播放。但是基本上,这就是我要实现的(输出),将不同工作表上的数据合并为一个。
我尝试使用ADO并为UNION和INNER JOIN进行查询(因为我认为它将起作用),但是没有运气。 希望任何人都能帮助我。
答案 0 :(得分:0)
尝试一下。
Sub test()
Dim vDB, Temp
Dim Ws(1 To 3) As Worksheet
Dim i As Long, j As Integer
Set Ws(1) = Sheets("Sheet1")
Set Ws(2) = Sheets("Sheet2")
Set Ws(3) = Sheets("Output")
vDB = Ws(1).Range("a1").CurrentRegion
Temp = Ws(2).Range("a1").CurrentRegion
For i = 2 To UBound(vDB, 1)
For j = 2 To UBound(vDB, 2)
If Temp(i, j) <> "" Then
vDB(i, j) = Temp(i, j)
End If
Next j
Next i
Ws(3).Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
End Sub
答案 1 :(得分:-1)
Sub SheetCode()
For Each sh In Sheets
If sh.Name <> Name Then
For Each cl In sh.Range("B2:D4")
If cl.Value <> "" Then Range(cl.Address).Value = cl.Value
Next
End If
Next
End Sub
此代码假定所有工作表中的表格完全相同,即页眉和唯一ID的顺序相同。
在要收集数据的工作表中粘贴代码。