Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
VBA: автозаполнения динамического массива в рамках одного столбца.
 
Добрый день Уважаемые Эксперты.

Будьте Добры подскажите способ автозаполнения динамического массива в рамках одного столбца.
На просторах Мировой Сети Интернет я обнаружил подобную конструкцию:
Код
[A1:A10] = "=Row()": [A1:A10] = [A1:A10].Value
В рамках статического массива подобная конструкция работает великолепно. Но лично я не смог самстоятельно разобраться с синтаксисом, когда необходимо, данную конструкцию "Одинамичить".
Под неологизмом "Одинамичить", я подразумеваю заменить номер строки на динамический, во второй части обозначения массива. Лично я предположил что есть возможность пойти по пути аналога функции "Двссыл", а именно функции "INDIRECT".  И составил следующую конструкцию :
Код
[Application.INDIRECT("A1:A"& Cells(4, 5))] = "=Row()": [Application.INDIRECT("A1:A"& Cells(4, 5))] = [Application.INDIRECT("A1:A"& Cells(4, 5))].Value
На что резонно получил ответ Run-Time error 424 Object Required
Какой именно объект не найден я сказать к сожалению не могу. Так же как не могу сказать, как наиболее оптимально производить автозаполнение в VBA.

P.S. Я знаю о возможности прописать цикл перебора, но на больших количествах он (перебор) к сожалению долговат.

Прошу помочь разобраться.
Благодарю.
 
Код
Private Sub Workbook_Open()
  With Worksheets(1)
    .Range("A1:A" & .Cells(4, 5)).Formula = "=Row()"
    .Range("A1:A" & .Cells(4, 5)).Value = .Range("A1:A" & .Cells(4, 5)).Value
  End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Вот всеж Evaluate должна быть доступна только достигшим определенного уровня :-)

Игорь, давай уже выкладывай строчку :-) . пока писал свершилось
Изменено: БМВ - 3 Сен 2018 15:02:39
 
Уважаемый Ігор Гончаренко
Спасибо большое все работает как часы, особенно радует глаз строчка)):
Код
.Range("A1:A" & .Cells(4, 5)).Value = .Range("A1:A" & .Cells(4, 5)).Value
Спасибо Вам.
Страницы: 1
Читают тему (гостей: 1)
Наверх