0

VBAを使うのはこれが初めてなので、Excel VBAの構文はまったく得意ではありません(以前にc++とmatlabを学びました)。

データの列を取り、いくつかの簡単な計算 (3 を掛けるなど) を行い、それを新しい列に入れようとしています。

今、並べ替えようとしているデータには重複があります。たとえば、この列には次のものがあります。

1  
2  
3  
4

2  
3  
6   
8    
9  
2  
3

数字の繰り返しと、場合によっては空白。今のところ、並べ替えについてはあまり心配していません。ある列から一連の配列を取得し、次の列に別の配列セットを配置するだけで問題が発生します。どうすればいいですか?以下のコードは文字列に対して機能しますが、これを微調整するにはどうすればよいですか? ありがとう!

これが私の試みです:

Sub unique()
    Dim arr As New Collection, a
    Dim aFirstArray() As Variant
    Dim i As Long

    aFirstArray() = Range("E:E")
    ' On Error Resume Next
    For Each a In aFirstArray
        arr.Add a, Str(a)
        'I tried changing Str(a) to Integer(a), apparently it doesn't work like this in Excel
    Next

    For i = 1 To arr.Count
        Cells(i, 3) = arr(i)
    Next

End Sub 
4

1 に答える 1

1

これはあなたの思考プロセスと正確に一致しないかもしれませんが、いくつかの異なる VBA ツールを使用して、本質はそこにあると思います。質問がある場合、または問題が解決しない場合はお知らせください。

このコードは、重複セルと空白セルを無視します。それらをリストに残しておきたい場合は、調整が非常に簡単です。

Sub unique()

Dim i As Integer
Dim dict As New Dictionary
Dim cel As Range
Dim rng As Range

Set rng = Range("A1:A12")

i = 1
For Each cel In rng
    If cel <> vbNullString Then
        If Not dict.Exists(cel.Value) Then
            dict.Add cel.Value, i
            i = i + 1
        End If
    End If
Next

For i = 1 To dict.Count - 1
    Cells(i, 3) = dict.Keys(i)
Next

End Sub
于 2012-06-14T21:55:20.540 に答える