返回列表 上一主題 發帖

在不固定範圍內找出相同資料

回復 1# jesscc

請參考
  1. Sub test()
  2.     Dim arr
  3.     Dim brr()
  4.     arr = Range("D12", "AK" & [D65536].End(xlUp).Row)
  5.     For i = 1 To UBound(arr)
  6.         For j = 23 To 33 Step 3
  7.             If arr(i, j) <> "" Then
  8.                 n = n + 1
  9.                 ReDim Preserve brr(1 To 9, 1 To n)
  10.                 brr(1, n) = arr(i, j + 2)
  11.                 brr(2, n) = arr(i, j)
  12.                 brr(7, n) = arr(i, 10) * arr(i, j + 1)
  13.                 brr(9, n) = arr(i, 1)
  14.             End If
  15.         Next j
  16.     Next i
  17.     With Sheets("工作表2")
  18.         .Rows("12:65536").Delete
  19.         .[A12].Resize(n, 9) = Application.Transpose(brr)
  20.         .Select
  21.     End With
  22. End Sub
複製代碼

TOP

回復 4# jesscc
Q1:相同的廠商沒有排列在一起
A1:只要在With Sheets("工作表2")內的.Select之前插入底下這行程式碼
.[A12].Resize(n, 9).Sort key1:=.[A12]

Q2:arr和brr()有什麼差別?
A2:arr:屬靜態陣列,用在可確認陣列大小的情況
brr():屬動態陣列,用在無法確認陣列大小的情況

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題