Как добавить два динамических массива с одинаковой размерностью, а затем отсортировать их в порядке возрастания этих значений?VBA Добавить массивы в другую третью
Например,
Dim a as Variant
a = sheets(1).range("B" & firstRow & ":B" & lastRow)
Dim b as Variant
b = sheets(1).range("C" & firstRow & ":C" & lastRow)
firstRow и lastRow правильно определены.
Мой вопрос: как добавить массив b после массива a. Предположим, что а = (8,3,5) и Ь = (1,7,2). Массив c должен быть (8,3,5,1,7,2). Я пробовал следующее без успеха. Может ли кто-нибудь объяснить, почему он не работает?
Dim c as variant
c = Join(b, Join(a, ","))
Чтобы отсортировать значения в массиве c, мне нужно создать функцию или выполнить только одну операцию?
Спасибо
Последняя версия
я изменил на следующий код:
Dim aArray() As variant
aArray = aRange
Dim bArray() As Variant
bArray = bRange
Dim cArray() As Variant
cArray = aArray
Dim i As Integer
For i = 1 To UBound(coutArray)
ReDim Preserve cArray(UBound(aArray)+1) As Variant
cArray(i + UBound(aArray),1) = bArray(i,1)
Next i
Я пытаюсь добавить CARRAY() в конце aArray, где эти два массива будут введены в cArray(). Почему это не работает? Я хотел бы понять.
Я также пробовал, создав функцию (How do I Merge two Arrays in VBA?), но тогда я как вызову процедуру? Это не работает.
Спасибо!
На самом деле и б имеет значения диапазонов первенствовать. Я думал, что мне нужно преобразовать диапазоны в массивы, прежде чем искать значения массива. – vbalearner
Я действительно не понимаю, что вы хотите. Join аннотирует все элементы массива размерных переменных в строку. например a = (8,6,9) Join (a, "/") Возвращает строку «8/6/9» – Shmukko
Я хочу создать два массива из двух разных столбцов. И тогда мне нужно объединить эти два массива в третью. Например, рассматривая a = массив (8,3,5) и b = массив (1,72), третий массив c = массив (1,2,3,5,7,8), где значения сортируются в порядке возрастания , – vbalearner