Переразметка массива в VBA

Автор Тема: Переразметка массива в VBA  (Прочитано 3976 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Переразметка массива в VBA
« : 04-07-2016, 08:37:01 »
Столкнулся с тем что в пределах кода VBA ружно изменить размер массива, но код:
Код - Visual Basic [Выбрать]
  1. ReDim Arr (100)
вызывает сообщение об ошибке. Вчем может быть причина?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Переразметка массива в VBA
« Ответ #1 : 04-07-2016, 09:41:03 »
вызывает сообщение об ошибке
Филат а ты как массив то объявил? Поди сразу размер указал при декларации? Типа

Код - Visual Basic [Выбрать]
  1. Dim sngArray(10) As Single

?

Попробуй объявить его динамическим, типа:

Код - Visual Basic [Выбрать]
  1. Dim sngArray() As Single


Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Re: Переразметка массива в VBA
« Ответ #2 : 04-07-2016, 10:53:53 »
Я указывал
Код - Visual Basic [Выбрать]
  1. Dim Arr(100) As Double
Попробуй объявить его динамическим, типа:

Код - Visual Basic [Выбрать]
  1. Dim sngArray() As Single


В таком варианте код выдает ошибку при попытке добавления нового элемента.
P.S. ошибка появляется при попытке записи по новому адресу через знак =
« Последнее редактирование: 04-07-2016, 15:00:12 от filat »

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Re: Переразметка массива в VBA
« Ответ #3 : 04-07-2016, 15:44:44 »
Насколько я помню, должно сработать нечто типа
Код - Visual Basic [Выбрать]
  1. Dim aSingle() As Single
  2. ' ...
  3. ReDim aSingle (100)
  4. ' ...
  5. ReDim Preserve aSingle(200)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!