この記事では、データをアルファベット順に並べ替えるカスタム関数を作成します。

生データは、並べ替えるランダムな名前で構成されています。

ArrowMain

ロジックの説明

データをアルファベット順に並べ替える「SortString」カスタム関数を作成しました。ソースの範囲と位置を入力として受け取り、指定された位置に基づいて値を返します。この関数は、最初にソートされた配列を作成し、次に指定された位置を使用して、ソートされた配列から必要な値を抽出します。

ArrowOutput

コードの説明

UBound(values)

上記の関数は、配列内の値の数を取得するために使用されます。

values(j)= values(j – 1)

上記のコードは、配列内の値を1つのインデックスだけシフトするために使用されます。

コードについては以下に従ってください

Option Explicit

Function SortString(Source As Range, Position As Long) As String

'Declaring variables

Dim Cell As Range

Dim values() As String

Dim i As Long, j As Long

Dim Done As Boolean

ReDim values(1 To 1)

'Looping through all cells in the range

For Each Cell In Source

Done = False

i = 1



'Creating an array of sorted name

Do

If Cell.Value < values(i) Then

Done = True

Else

i = i + 1

End If

Loop While Done = False And i <= UBound(values)



ReDim Preserve values(1 To UBound(values) + 1)



If i <= UBound(values) Then

'Adjusting value in sorted name array

For j = UBound(values) To i + 1 Step -1

values(j) = values(j - 1)

Next j

End If

values(i) = Cell.Value

Next Cell

'Assigning value of required position

SortString = values(Position + 1)

End Function

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください