Здравствуйте, в одном из последних моих вопросов был совет начать работать с массивами.
Вот уже на первом этапе возникла проблема - Как создать Массив, используя имя таблицы?
Информации как объявить массив много и вроде всё понятно, но там ничего не сказано можно ли создать массив по имени таблицы?
Здесь
"... Но взять в массив просто: "
Далее был еще пример, попробовал разобрать
Но почему в этом примере не дают таблице имя и не создают массив по имени таблицы?
Здесь "Функция Array" тоже имеет пример
тоже не использовали ни разу имя таблицы
Читал про Оператор Dim и то же ничего для этой задачи не нашел
Возник вопрос. Вообще можно создавать массивы указывая не конкретные ячейки, а имя таблицы? По логике, если для ComboBox можно указать имя, значит и для массива должна быть возможность.
Вот уже на первом этапе возникла проблема - Как создать Массив, используя имя таблицы?
Информации как объявить массив много и вроде всё понятно, но там ничего не сказано можно ли создать массив по имени таблицы?
Здесь
"... Но взять в массив просто: "
| Код |
|---|
Dim a a=[a1:b100] |
или
| Код |
|---|
a=[a1:b100].Value |
Далее был еще пример, попробовал разобрать
| Код |
|---|
Sub io()
Dim v, x 'Объявление и инициализация массива Dim, Private, Public, ReDim, Static https://msdn.microsoft.com/RU-RU/library/office/gg251320.aspx
' но не указыван тип? https://msdn.microsoft.com/ru-ru/library/office/gg251750.aspx
With Sheets("СПБ") ' 'Оператор With используется для указания объекта, с которым мы будем работать.
'Здесь Лист СПБ. Sheets это вроде коллекция?
v = .Range(.[A3], .Cells(.UsedRange.Rows.Count, "R")).Value ' массив таблицы - там таблица от A до R
'квадратные скобки А3
'Свойства CurrentRegion и UsedRange очень полезны, когда программа работает с диапазонами, размерами которых Вы не можете управлять.
' Мы не знали колличство строк поэтому вместо строк пишем .UsedRange.Rows.Count?
'правда это была инфа из "MS Office. Руководство программиста по Visual Basic для MS Office 97" http://mf.grsu.by/UchProc/konspekt/VBA/ch02/ch04/ch03
ReDim x(1 To UBound(v), 1 To 18) 'Меняем размер массива?
End With
End Sub |
Но почему в этом примере не дают таблице имя и не создают массив по имени таблицы?
Здесь "Функция Array" тоже имеет пример
| Код |
|---|
Dim A As Variant A = Array(10,20,30) B = A(2) |
Читал про Оператор Dim и то же ничего для этой задачи не нашел
Возник вопрос. Вообще можно создавать массивы указывая не конкретные ячейки, а имя таблицы? По логике, если для ComboBox можно указать имя, значит и для массива должна быть возможность.