任何人都可以帮助我优化下面的简单代码 需要永久完成执行。 也许我在某处遇到了无限循环。 它所做的仅仅是两个字符串,如果它们相等,那么它会根据这里提到的单元格对位置进行混洗。如何提高下列代码的效率
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