1

さまざまなデータを含むテーブルを取得しました。ある列には、時々発生するある種のプロジェクト番号があります。各プロジェクト番号を含むリストを作成したいと思います。

そのため、配列を作成し、既存の配列にまだ存在しない場合はそれに番号を追加することを考えました。

最後に、配列をテーブルに表示する必要があります

これは私がこれまでに思いついたことです:

Sub ChoseNumbers()
' Chosing the Numbers in the AreaDim Arr() As Integer
Dim i As Integer
Dim area As Range

Set area = Columns("N").cells

i = 0
For Each cell In area
    If IsEmpty(cell) Then
        Exit For
    ElseIf i = 0 Then
        ReDim Preserve Arr(i)
        Arr(UBound(Arr)) = cell.Value
        i = i + 1
    ElseIf IsInArray(cell.Value, Arr) = False Then
        ReDim Preserve Arr(i)
        Arr(UBound(Arr)) = cell
        i = i + 1
    End If
Next cell


'Giving the selection out again

For i = 1 To (UBound(Arr))

cells(i, 1).Value = Arr(i)

Next i

End Sub

アドバイスありがとうございます!

4

3 に答える 3

7

セルの範囲をループして、一意の値を 1 次元配列に割り当てる簡単で効果的な方法を探している場合は、Dictionary オブジェクトを調べます: http://www.w3schools.com /asp/asp_ref_dictionary.asp

Set objDic = CreateObject("Scripting.Dictionary")
For Each Cell In Area
    If Not objDic.Exists(Cell.Value) Then
        objDic.Add Cell.Value, Cell.Address
    End If
Next

I = 1
For Each Value In objDic.Keys
    Cells(I,1).Value = Value
    I = I + 1
Next
于 2013-10-28T05:12:43.570 に答える
1

追加するには、置くこともできます

Activeworkbook.Worksheets("WorksheetName").Range("YourRange") =     
Application.Transpose(ObjDic.keys)
于 2015-04-09T13:48:07.903 に答える