Sanja написал: Есть ограничения самого Excel . Транспонировать более 16 384 строк в столбцы Вы не сможете, т.к. столбцы кончатся.
Так я не транспонирую 16384 строки, я транспонирую около 1200 строк, при этом неважно сколько строк вы транспонируете, глюк вылизает именно на кол-ве элементов более 65535.
PS: Вы сами писали, что ждали от меня файл-пример 2 недели, сейчас я вложил файлик сразу, где видно, что действует только одно непонятно ограничение, но Вы теперь его почему то игнорируете ))
Значит в новых версиях (где кол-во строк увеличено до более миллиона) Transpose осталась недоработанной и имеет ограничение по кол-ву строк старых версий
Согласие есть продукт при полном непротивлении сторон
Я не понимаю, почему такая простая конструкция не хочет работать (((
Код
For i = 1 To 10
ReDim Preserve Array1(i)
Array1(i,1) = 2
Next
Я хочу записать значение 2 в массив Array1 в строку I (1..9) столбец 1, но почему Subscript out of range. ((((( чОртовы массивы, неужели не могли их сделать понятными...
Из офф справки: Если вы используете ключевое слово Preserve, вы можете изменить размер только последнего измерения массива, и вы не можете изменить количество измерений вообще. Например, если ваш массив имеет только одно измерение, вы можете изменить его размер, потому что это последнее и единственное измерение. Однако, если ваш массив имеет два или более измерений, вы можете изменить размер только последнего измерения и сохранить содержимое массива. В следующем примере показано, как можно увеличить размер последнего измерения динамического массива без удаления каких-либо существующих данных, содержащихся в массиве.
Не ограничение, а глюк. Причем пока только на Вашем компе. Из ссылки #31 не следует, что есть ограничение на транспонирование массива, есть ограничения на диапазон строк и столбцов. Однако замечено, что при использовании больших массивов, иногда, возникает "Out of memory" на 32-битных версиях экселя. После смены на 64 ошибок нет.
Если известно количество знаков в числе,то можно задать формат ячейки.Для этого в "Формат ячейки" в позиции "(все форматы)" задать тип (маску), например: 0#####. Тогда, если ввести пятизначное число 12345, результатом будет 012345. Так можно задать любое количество нулей перед числом
TheBestOfTheBest написал: Вот Вам пример вывода 16380 и строк и столбцов, на 2010 работает.
Так не работает же Я дополнил одной строчкой, Массив в столбец не раскладывается! Я поэтому и говорю - чОртовы массивы, неужели не могли их сделать нормальными... №;%:?* какой то
Не сочтите за наглость, но Ваш макрос не раскладывает Массив в вертикальный Столбец, то есть Не Работает. Вы убрали из моего преыдущего файла важную строку, из за чего Вы не видите "не работу" макроса.
Android1 написал: Так не работает же Я дополнил одной строчкой, Массив в столбец не раскладывается! Я поэтому и говорю - чОртовы массивы, неужели не могли их сделать нормальными... №;%:?* какой то
Вот это работать не будет,
Код
Option Base 1
Private Sub CommandButton1_Click()
Dim Array1()
Dim i&
ReDim Array1(16380)
For i = 1 To 16380
Array1(i) = 2 + k
k = k + 1
Next
Range("A1").Resize(UBound(Array1), 1) = Array1
Range("B1").Resize(1, UBound(Array1)) = Array1
End Sub
т.к. переменная "к" не иниц-на, будет ошибка и массивы здесь абсолютно не причем, так же как и Ваше утверждение, что макрос #46 не работает. Учите матчасть, коллега.
Android1 написал: так же как и Ваше утверждение, что макрос #46 не работает.
Я в выше писал, что:
Код
Это да, но в таком случае записывается в Массив в строку, а я хочу сразу в столбец
Я просто думал мы в этом ключе общаемся, так сказать
Если цель вывести данные из массива в вертикальный столбец без транспонирования, то Ваш макрос не выполняет эту задачу, так как первый элемент массива, это не весь массив, ну а я соотвесвенно не могу понять, как это вообще можно сделать. Вроде простейшее действие, но блин чтобы его сделать, вообще не понимаю, что нужно сделать.