vba写入数组时,不得把重复值写入
时间: 2024-09-14 09:06:33 浏览: 66
在VBA中,如果你想将数据写入数组但又想避免重复值,可以使用一些特定的方法来检查和确保数组中不包含重复项。以下是一个简单的方法,使用了一个额外的数组来存储已经检查过的值,以此来避免重复:
```vba
Sub WriteUniqueValuesToArray()
Dim i As Integer
Dim tempArray() As Variant
Dim uniqueArray() As Variant
Dim counter As Integer
' 假设这是你想要写入数组的范围
Dim dataRange As Range
Set dataRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
' 将范围数据加载到临时数组中
tempArray = dataRange.Value
' 初始化计数器和唯一数组的大小
counter = 0
' 遍历临时数组,只添加不重复的值到唯一数组中
For i = LBound(tempArray, 1) To UBound(tempArray, 1)
If Application.WorksheetFunction.CountIf(uniqueArray, tempArray(i, 1)) = 0 Then
' 如果唯一数组中没有这个值,则添加到数组中
counter = counter + 1
ReDim Preserve uniqueArray(1 To counter)
uniqueArray(counter) = tempArray(i, 1)
End If
Next i
' 现在uniqueArray包含了所有不重复的值
' 可以根据需要进一步使用这个数组
End Sub
```
这个过程首先创建了一个临时数组来存储从工作表范围读取的值,然后创建了一个空的唯一数组。通过遍历临时数组,使用`WorksheetFunction.CountIf`函数检查每个元素是否已经在唯一数组中出现过。如果没有出现过,则将其添加到唯一数组中。这样,最终得到的`uniqueArray`将只包含不重复的值。
阅读全文