Проблема с номером верхнего индекса массива при использовании инструкции Redim Preserve в VBA

Просто быстрый вопрос о массивах VBA...

Что произойдет, если я использую оператор ReDim Preserve и изменяю размер массива, уменьшая номер верхнего индекса. Если myArray(5) ="Shmoo" что, если я сделаю это:

ReDim Preserve myArray(2)

Можно ли это сделать, поскольку Preserve не должен терять данные, привязанные к каждому номеру индекса в массиве, а номер индекса 5 в массиве имеет строковое значение «Smoo»?


person ExoticBirdsMerchant    schedule 27.01.2014    source источник


Ответы (1)


Данные в myArray(3), myArray(4) и myArray(5) будут потеряны. Preserve сохраняет только те данные, которые соответствуют новому размеру, указанному в операторе ReDim.

Из файла справки Excel VBA:

If you make an array smaller than it was, data in the eliminated elements will be lost.

person Olle Sjögren    schedule 27.01.2014
comment
Спасибо большое, вы спасаете жизнь! Я очень хотел это узнать! - person ExoticBirdsMerchant; 28.01.2014
comment
Без проблем! Вы можете закрыть вопрос, нажав на галочку рядом с ответом, если он был вам полезен... :) - person Olle Sjögren; 28.01.2014