我當前正在嘗試在VBA上創建一個代碼,以便按升序對我的值進行排序。在我的程序找到最小值並將其添加到另一列「B」後,我想讓最小值的單元格消失,以便找到我的新最小值並在初始值下將其輸入到「B」列。這是我的代碼。由於某些原因,它不會刪除單元格,並給我一個「對象所需的錯誤」。請幫助通過刪除每個循環發現下一個最小值的最小值來升序排列
Option Explicit
Sub decreasing()
Dim a As Range, b As Range
Dim i As Integer
Dim n As Long
Dim minimum As Long
n = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
i = 1
While Cells(i, "A") <> ""
i = i + 1
For i = 1 To n
Set a = Range(Cells(1, "A"), Cells(n, "A"))
Cells(i, "B") = Application.WorksheetFunction.Min(a)
Application.Min(a).Cells.Delete
Next i
Wend
End Sub
'Min()'返回一個值,而不是範圍對象。您需要使用Find()或Match()以Minimum值定位單元格,然後將其刪除。你可能會發現在你的循環中使用'Application.Small(a,i)'更容易:那麼你不需要刪除你已經複製的單元格。 –
此外,您還需要決定是否要使用早期綁定的'Application.WorksheetFunction.Min'或後期綁定的'Application.Min'函數。請一致! –
歡迎來到Stack Overflow!它看起來像你需要學習使用調試器。請幫助一些[互補調試技術](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之後仍然有問題,請隨時返回更多詳情。 –