Слияние двух массивов в одну со множественной вставкой [VBA].
Вы можете объединить два массива с множественной вставкой (сохраняя повторяющиеся элементы) с использованием макросов VBA в Excel. Вот пример кода, который позволяет сделать это:
Sub MergeArraysWithDuplicates()
- Dim array1 As Variant
- Dim array2 As Variant
- Dim mergedArray() As Variant
- Dim index As Long
- Dim i As Long
- Dim j As Long
‘ Замените array1 и array2 на ваши массивы
- array1 = Array(«A», «B», «C», «A», «D»)
- array2 = Array(«C», «D», «E», «B», «F»)
- ReDim mergedArray(UBound(array1) + UBound(array2) + 2)
- For i = LBound(array1) To UBound(array1)
- mergedArray(index) = array1(i)
- index = index + 1
Next i
- For i = LBound(array2) To UBound(array2)
- Dim exists As Boolean
- exists = False
- For j = LBound(array1) To UBound(array1)
- If array2(i) = array1(j) Then
- exists = True
- Exit For
- End If
Next i
If Not exists Then
- mergedArray(index) = array2(i)
- index = index + 1
- End If
Next i
ReDim Preserve mergedArray(index — 1)
‘ Вывести объединенный массив
- For i = LBound(mergedArray) To UBound(mergedArray)
- Debug.Print mergedArray(i)
Next i
- End Sub
В этом примере два массива array1 и array2 объединяются в массив mergedArray с учетом повторяющихся элементов. Код использует циклы для обхода элементов каждого массива, проверяя наличие дубликатов в объединенном массиве. Если элемента нет в array1, он добавляется в mergedArray.
Вы можете заменить array1 и array2 на ваши собственные массивы данных. После выполнения макроса, объединенный массив будет выведен в окно «Immediate» (нажмите Ctrl + G, чтобы открыть его).
Пожалуйста, убедитесь, что вы приспособили код к вашим данным и требованиям перед его выполнением.