У меня есть следующий код:Streamline/размер размера массива в массиве массивов
Function SplitMe(sourceArray As Variant) As Variant
Dim source As Variant, tempArr As Variant
source = sourceArray
If Not IsArray(source) Then _
Exit Function
Dim r As Integer
Dim parts() As String
Dim splitted As Variant
ReDim splitted(LBound(source) To UBound(source))
For r = LBound(source) To UBound(source)
parts = VBA.Split(source(r, 1), "\")
splitted(r) = parts
Next r
Это не работает хорошо, пока здесь:
splitted = Application.Transpose(splitted)
SplitMe = splitted
For r = LBound(splitted) To UBound(splitted)
Debug.Print uniqueValues(splitted, r)
Next r
End Function
В этом пункте я хочу, чтобы транспонировать массив. Он отлично работает, если массивы в разбитом массиве имеют одинаковый размер. Проблема возникает, когда у меня есть запрос, как это:
транспонирование необходимо для функции uniqueValues(splitted, r)
.
Теперь я хочу написать функцию, которая идет вперед, и добавляет длину запросам, которые не являются максимальным размером.
В этом случае splitted(1)
предоставит длину 0 to 9
, а затем остальные 5 узлов должны быть увеличены до 0 to 9
.
Любой, у кого есть функция под рукой, которая делает это?
Почему бы не попробовать писать это? Вам нужно будет дважды пропустить «split»: на первом проходе найдите максимальный размер каждого подматрица, а на втором проходе используйте «Redim Preserve» для изменения размера по мере необходимости. –
Да, я сейчас в процессе написания. Я не нашел решение в Интернете и подумал, что, возможно, у кого-то есть. Как только я закончу, я отвечу на вопрос рабочим кодом. – Spurious