这是我第一次使用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
答案 0 :(得分: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