請測試看看,謝謝
Sub test()
Dim Arr, Brr, Crr(), i&, x&, j%
Brr = Sheets("總表").Range("a1").CurrentRegion
Arr = Sheets("查詢").Range("a1").CurrentRegion
ReDim Crr(1 To UBound(Arr), 1 To UBound(Brr, 2))
For i = 2 To UBound(Arr)
For x = 2 To UBound(Brr)
If Arr(i, 1) = Brr(x, 1) Then
Crr(i - 1, 1) = Brr(x, 3): Crr(i - 1, 2) = Brr(x, 6)
For j = 8 To UBound(Brr, 2): Crr(i - 1, j - 5) = Brr(x, j): Next
End If
Next
Next
Sheets("查詢").Range("b2").Resize(UBound(Arr), UBound(Brr, 2)) = Crr
End Sub作者: JT1221 時間: 2022-9-2 15:49
Option Explicit
Sub test()
Dim i, x, Arr, Brr(1 To 100000, 1 To 9), c, j, n, Crr
Arr = Sheets("總表").Range("A1").CurrentRegion
Crr = Sheets("查詢").Range("A1").CurrentRegion
c = Sheets("總表").UsedRange.Columns.Count
For i = 1 To UBound(Arr)
For j = 8 To c
If Trim(Arr(i, j)) = "" Or Trim(Arr(i, j)) = "A=B,A=C→B=C" Then
Exit For
Else
n = n + 1
Brr(n, 8) = Trim(Arr(i, j))
For x = 1 To 7
Brr(n, x) = Trim(Arr(i, x))
Next
End If
Next
Next
Workbooks.Add
Cells.Font.Name = "微軟正黑體"
[A1].Resize(100000, 9) = Brr
Cells.Columns.AutoFit
Cells.Rows.AutoFit
Cells.Columns.AutoFit
[2:2].Select
ActiveWindow.FreezePanes = True
[A1].AutoFilter
[A1].Select
ActiveSheet.Name = "新總表"
Sheets.Add.Name = "新查詢"
[A1].Resize(UBound(Crr), 4) = Crr
For i = 1 To UBound(Crr)
For x = 2 To UBound(Brr)
If Brr(x, 1) = Crr(i, 1) Then
If Crr(i, 2) = "" Then
Crr(i, 2) = Brr(x, 3)
End If
If Crr(i, 3) = "" Then
Crr(i, 3) = Brr(x, 6)
End If
If Crr(i, 4) = "" Then
Crr(i, 4) = Brr(x, 8)
Else
Crr(i, 4) = Crr(i, 4) & vbLf & Brr(x, 8)
End If
End If
Next
Next
[A1].Resize(UBound(Crr), 4) = Crr
[A:D].Columns.AutoFit
Cells.Rows.AutoFit
Cells.Borders.LineStyle = xlContinuous
[2:2].Select
ActiveWindow.FreezePanes = True
[A1].AutoFilter
[A1].Select
End Sub作者: JT1221 時間: 2022-9-6 12:00