私は仕事で休日のスプレッドシートを修正する仕事を与えられましたが、ドキュメントの問題は、直接参照、他のワークシートへの間接参照、および参照されていない一部の部分があることです。したがって、人々を別の順序に並べたい場合は、完全に全体を台無しにします。だから、私がやろうとしているのは、配列に人々の名前を入力し、配列を並べ替えてから、元の配列と相互参照して新しい順序を見つけ、この新しい順序を混乱させることなくワークシート全体に実装できるようにすることです。
問題は、配列を取り込むことができないように見えることです。ここで他の回答を確認しましたが、redimを適切に使用していると確信しており、それが問題になる傾向があります。
したがって、Previousは元のリスト、Currentはソートされたリスト、Positionはpreviousをcurrentに関連付ける番号です。
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
ご協力いただきありがとうございます。エイミー