我剛剛在幾天前回答了一個與此非常相似的問題。
Here is the link在這個例子中,它是基於一個數組。你可以稍微修改這個來獲得你的結果。
- 是的,你需要確定你正在檢查的列表的最後一行。 - GetLastRow(請參閱下文)
- vLoopup不如Match或Match with Match有效。您可以使用worksheetFunction.Match跳過第一次出現,甚至查看是否有任何匹配。
步驟來考慮:
大部分情況是一遍又一遍。通過一次循環一個單元格將項目添加到數組。檢查一個值是否爲另一個值。如果是這樣,match = true ..就是這樣。看看鏈接,看看另一個例子。
爲此,請使用.Cells而不是.Range。 .Cells(row#,Col#)格式非常適合循環。對於Row#或者Column#只需要一個變量,然後增加它來循環。這與單擊工作表上的向下箭頭效果相同。您還可以使用字符串定義公式。
Dim r As Long ' Or Integer although I've read that Long is more efficient.
r = 4
Sheets("Sheet1").Cells(r, 3) = "Hello There C4!"
'Result = Sheet1!C4 = Hello There C4
舉例:這會是怎樣運行到您的無與倫比的項目添加到原始列表。你只想添加那些不在那裏的。
Private Sub AddToSheet()
Call GetLastRow
r = lastRow + 1
i = 0
For i = 0 To n
Sheets("Sheet1").Cells(r, 1) = unMatchedArray(i)
r = r + 1
Next i
End Sub
Private Sub GetLastRow()
' checking Range("A1:A65536")
lastRow = Sheets("Sheet1").Cells(65536, 1).End(xlUp).Row
End Sub
您的問題目前非常含糊。如果您向我們提供一些示例數據,以及您迄今爲止嘗試過的任何代碼,這將有所幫助。而且,這聽起來像是一個數據透視表能夠做到的事情。我會先看看,然後嘗試使用VBA,如果一個數據透視表無法完成你所需要的。 – BobbitWormJoe 2014-11-01 06:55:23