0
在我的數據中有超過一千個不同的六位數字,這些數字在沒有特定模式下重複出現。我需要找到列A中存在的所有六位數字代碼以及每個數字。例如123456,然後在列B中爲列A中的每個具有123456的行查找彙總值。我的代碼不是非常有效,但如果我只運行10行,則運行時不是問題。但是,在真實的數據表中有80 000行,我的代碼需要很長時間。有人可以幫我編輯我的代碼,但刪除循環內的某些循環或一些停止條件。我是VBA新手,無法在有限的時間內自己做。刪除循環使我的VBA宏能夠在更多數據上運行
Sub Test2()
Dim summa As Long
Dim x As Long
Dim condition As Boolean
Dim lRows As Long
Dim k1 As Integer
Dim i As Long
x = 1
Worksheets("Sheet1").Activate
For i = 100000 To 999999
k1 = 1
lRows = 10
condition = False
While k1 <= lRows
If Cells(k1, "A").Value = i Then
condition = True
End If
k1 = k1 + 1
Wend
If condition = True Then
Cells(x, "F").Value = Application.SumIf(Range("A:A"), CStr(i), Range("B:B"))
Cells(x, "E").Value = i
x = x + 1
End If
Next i
MsgBox "Done"
End Sub
「*我是VBA的新手,在有限的時間內無法自己做。*」所以我們的時間也有限。沒有人會因爲你截止日期而爲你做所有的工作。我們不知道你的代碼做了什麼(你沒有告訴)以及它應該做什麼。你至少應該指出**是你的問題。另請閱讀[問]。 –
基本上,列E需要在列A中具有所有唯一值,並且列F需要具有如此SumIF中指定的列B的總和。是否有任何理由不能將列A複製粘貼到E中,使用功能區中的「刪除重複項」並在列F中手動輸入SumIF函數? /爲什麼你需要VBA? –
使用數據透視表? – 99moorem