- 帖子
- 552
- 主題
- 3
- 精華
- 0
- 積分
- 578
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-2-8
- 最後登錄
- 2024-7-9
  
|
回復 12# terrykyo520
Cells(Rows.Count, 1).End(xlUp).Row是A欄的最後一格的列號,Rows.Count為所有的列號,1就是A欄
原來的欄數只有些3欄,所以寫的比較簡單,但是若資料數量很多時就不能如下面表示的寫法,
arr(j, 1) = ""
arr(j, 2) = ""
arr(j, 3) = ""
...
....
.......
.......
arr(j, X) = ""
這樣寫會累死的
所以必須多一個迴圈- Public Sub ex()
- Dim ar()
- arr = Range("A2:AD" & Cells(Rows.Count, 1).End(xlUp).Row)
- K = UBound(arr)
- For I = 1 To UBound(arr) - 1
- For j = I + 1 To UBound(arr)
- If arr(I, 1) = "" Or arr(j, 1) = "" Then GoTo 10
- If arr(I, 13) & arr(I, 17) = arr(j, 13) & arr(j, 17) Then
- For L = 1 To UBound(arr, 2)
- arr(j, L) = ""
- Next
- K = K - 1
- End If
- 10:
- Next
- Next
- ReDim ar(1 To K, 1 To UBound(arr, 2))
- K = 1
- For I = 1 To UBound(arr)
- If arr(I, 1) <> "" Then
- For L = 1 To UBound(arr, 2)
- ar(K, L) = arr(I, L)
- Next
- K = K + 1
- End If
- Next
- Range("a2:AD" & Cells(Rows.Count, 1).End(xlUp).Row).Clear
- [a2].Resize(UBound(ar), UBound(arr, 2)) = ar
- End Sub
複製代碼 |
|