我一直在考慮固定在一個休假的電子表格的工作陣列,該文件的問題是,有直接引用其他工作表間接引用和某些部件不被引用,所以如果你想把人們放在一個不同的秩序中,它會把整個事情搞得一團糟。所以,我一直試圖做的是用人名填充一個數組,然後對數組進行排序,然後與原始數據交叉引用並找到新訂單,以便在工作表中實現這個新訂單而不會搞亂所有的事情。填充與範圍VBA
的問題是,我似乎無法得到數組來填充,我看了看這裏的其他答案,但我敢肯定,我使用REDIM正常,並且往往是問題。
所以以前是原上市,目前是排序列表和立場是涉及以前到當前的數量。
Sub Sorting()
Dim Previous() As Variant
Dim Current() As Variant
Dim maxrow As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim Position() As Long
Dim rng As Range
Dim strTemp As String
k = 0
i = 3
maxrow = 3
Do While Worksheets(1).Cells(i, 1).Value <> "STAT.HOL'S (ST)"
maxrow = maxrow + 1
i = i + 1
Loop
maxrow = maxrow - 1
ReDim Previous(0 To maxrow)
ReDim Position(0 To maxrow)
ReDim Current(0 To maxrow)
Previous = Range("a4", Range("a" & maxrow))
Current = Previous
For i = 0 To maxrow
For j = 0 To maxrow
If Current(i) > Current(j) Then
strTemp = Current(i)
Current(i) = Current(j)
Current(j) = strTemp
End If
Next j
Next i
For i = 0 To maxrow
For j = 0 To maxrow
If Previous(i) = Current(j).Value Then
Position(k) = j
k = k + 1
End If
Next j
Next i
End Sub
感謝您的幫助。 艾米
請問您的分揀作業中?如果沒有,請參閱此[Q + A](http://stackoverflow.com/q/152319/1490783)其他方法。另外,考慮縮進你的代碼,它會更容易閱讀。 – 2013-03-27 12:15:35
當您將數組分配給上一次時,嘗試在末尾添加'.value'。同樣在你的'Range(「a4」,)'中,你不需要聲明第二部分是一個單獨的Range。 'Range(「a4」,「a」和maxrow).value'。 – Zaider 2013-03-27 12:23:09
沒有我的排序不工作,我想事先得到第一部分工作。我縮進了我的工作,但這只是一些初步的代碼。感謝提示,我設法讓它工作。 – user1545643 2013-03-27 12:54:06