聽起來像@BruceWayne指出你在正確的方向爲你需要 - 刪除重複。
作爲@Apurv Pawar顯示你可以使用一個循環,但他選擇單元格(如果有任何代碼說選擇或激活一個單元只是不....你可以參考一個單元格而不選擇)。
另一種方法是有一個程序來刪除單元格,另一個程序告訴它要查看哪個工作簿,工作表和單元格。
Sub DeleteRedundant(CheckRange As Range)
If CheckRange = CheckRange.Offset(1) And CheckRange.Offset(, 1) = CheckRange.Offset(1, 1) Then
CheckRange.Offset(1).Resize(, 2).ClearContents
End If
End Sub
上面的代碼將接受傳遞給它的範圍。
它會檢查通過的單元等於低於自身細胞:
CheckRange = CheckRange.Offset(1)
它將然後檢查細胞傳遞的單元格的右邊等於低於該值:
CheckRange.Offset(, 1) = CheckRange.Offset(1, 1)
如果值匹配它會看通過的單元下面的單元格,調整,爲兩個單元,寬清除這兩個單元格的內容:
CheckRange.Offset(1).Resize(, 2).ClearContents
有了這個過程中,我們可以通過它的各種範圍內引用,操作上:
Sub Test()
DeleteRedundant Workbooks("Excel Worksheet1.xlsx").Worksheets("Sheet1").Range("A6")
DeleteRedundant Workbooks("Excel Worksheet2.xlsx").Worksheets("Sheet2").Range("D5")
'Pass every other cell to the procedure in a loop.
'So will pass A2, A4, A6 - Cells(2,1), Cells(4,1) and Cells(6,1)
Dim x As Long
For x = 2 To 20 Step 2
DeleteRedundant Workbooks("Excel Worksheet1.xlsx").Worksheets("Sheet1").Cells(x, 1)
Next x
End Sub
但是,正如@BruceWayne說 - 你可能只需要對數據功能區中的刪除重複按鈕。
要重複代碼,您需要將其嵌入到每次切換變量的'Loop'中。 – dwirony
我這麼認爲。但我真的不知道如何實現這種可變開關。 (對不起剛剛學習VBA編程) –
你期望循環通過什麼?有幾種方法可以完成循環,選擇哪一種最有效,取決於你循環的內容。你也可以爲'y'循環中的每個x,或者'Do While'循環做一個'... – BruceWayne