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 回答