Como verificar se os dados existem ou não no array e adicionar itens ao array usando VBA

Como verificar se os dados existem ou não no array e adicionar itens ao array usando VBA

Eu sempre escrevo dados 【AAA, BBB, CCC】 em um arquivo CSV.
Gostaria também de escrever outros dados (por exemplo: DDD) se houver em um arquivo de texto.

Uma matriz:
arr = Array("AAA", "BBB", "CCC")

Arquivo de texto (leitura):

AAA  
BBB  
CCC  
DDD  
BBB  
CCC  
AAA  
DDD  
AAA  

Código:

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 

Arquivo CSV (gravação):

AAA, BBB, CCC, DDD  

Qual é a melhor maneira de fazer isso?

Responder1

Função de filtro (Visual Basic)
Retorna uma matriz baseada em zero contendo um subconjunto de uma matriz String com base em critérios de filtro especificados.

  1. Use a filterfunção e verifique o tamanho do array resultante com Ubound().
  2. Use Redim preservepara expandir sua matriz em 1 e adicionar o valor do texto verificado recentemente

Aqui está um pequeno exemplo geral

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

informação relacionada