如何使用 VBA 检查数组中是否存在数据并将项添加到数组

如何使用 VBA 检查数组中是否存在数据并将项添加到数组

我总是将数据【AAA,BBB,CCC】写入CSV文件。
如果文本文件中有其他数据(例如:DDD),我也想写入。

数组:
arr = 数组(“AAA”,“BBB”,“CCC”)

文本文件(读取):

AAA  
BBB  
CCC  
DDD  
BBB  
CCC  
AAA  
DDD  
AAA  

代码:

Open InputFile For Input As #1  
Open OutputFile For Output As #2  
Do Until EOF(1)  
Line Input #1, strData  
'Read data from text file  
'Check text file data exists or not in arr  
'If not exist, add items(DDD) to arr  
Print #2, strData  
Loop  
Close #1  
Close #2 

CSV 文件(写入):

AAA, BBB, CCC, DDD  

实现这个的最佳方法是什么?

答案1

筛选函数 (Visual Basic)
根据指定的过滤条件返回一个包含字符串数组子集的从零开始的数组。

  1. 使用该filter函数并使用 Ubound() 检查结果数组的大小。
  2. 使用Redim preserve将数组扩展 1 并添加最近检查的文本值

这是一个小的通用示例

Sub IsInArray()

    Dim arrCheck()

    arrInput = Array("AAA","BBB","CCC","DDD","BBB","CCC","AAA","DDD","AAA")
    arrCheck = Array("AAA","BBB","CCC")

    For Each Item In arrInput
        If UBound(Filter(arrCheck, Item)) = -1 Then
            ReDim Preserve arrCheck(UBound(arrCheck) + 1)
            arrCheck(UBound(arrCheck)) = Item
        End If
    Next

End Sub

相关内容