Как проверить, существуют ли данные в массиве или нет, и добавить элементы в массив, используя VBA
Я всегда записываю данные 【AAA, BBB, CCC】 в файл CSV.
Я хотел бы также написать другие данные (например:DDD), если есть в текстовом файле.
Массив:
arr = Array ("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)
Возвращает массив с нулями, содержащий подмножество массива String, основанное на указанных критериях фильтрации.
- Использовать
filter
Функция и проверьте размер полученного массива с помощью Ubound(). - использование
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