任何人都可以幫助我優化下面的簡單代碼 需要永久完成執行。 也許我在某處遇到了無限循環。 它所做的僅僅是兩個字符串,如果它們相等,那麼它會根據這裏提到的單元格對位置進行混洗。如何提高下列代碼的效率
Sub sort()
Dim astid As String
Dim partno As String
Dim FinalRow As Long
Dim i, j As Integer
FinalRow = Sheets("Combined Version").Range("H9000").End(xlUp).Row
For i = 5 To FinalRow
partno = Sheets("Combined Version").Cells(i, 7).Value
For j = 5 To FinalRow
astid = Sheets("Combined Version").Cells(j, 8).Value
If astid = partno Then
Cells(j, 8).Select
Selection.Copy
Range("N5").Select
ActiveSheet.Paste
Cells(i, 8).Select
Application.CutCopyMode = False
Selection.Copy
Cells(j, 8).Select
ActiveSheet.Paste
Range("N5").Select
Application.CutCopyMode = False
Selection.Copy
Cells(i, 8).Select
ActiveSheet.Paste
End If
Next j
Next i
End Sub
這應該在代碼審查 – brettdj
'End(xlUp).Row'將給你在H列的頂部單元格,即第一行!你在尋找最後一個!循環將是無限的,因爲j和i的值會增加! – MarmiK
@MarmiK - 我和j是行號。 'Cells(i,8)'中的8表示第8列(又名H列)。有關完整的說明,請參見[Range.Cells屬性](https://msdn.microsoft.com/en-us/library/office/ff196273.aspx)。 – Jeeped