Страницы: 1
RSS
Почему простейший код выполняется так долго?, Всего миллион ячеек обработать.
 
Решил тут посчитать счастливые билетики, для чего потребовалась куча цифр в столбиках от 0 до 999999. Попробовав протянуть, на нескольких тысячах уже устал держать мышку, решил сделать макрос. Макрос примитивнейший:

Код
Sub макрос()
 Application.ScreenUpdating = False
 For i = 1 To 999999 Step 1
 Cells(i, 1) = i
 Next i
 Application.ScreenUpdating = True
End Sub
Но выполнялся он минут десять... Те же формулы разбиения этого числа на цифры, работали довольно быстро, т.е. пару секунд - обработка одного столбца. А тут вроде всё просто, а работало довольно долго. Это я - тупой, или можно как-то этот код оптимизировать?
Если автоматизировать бардак, то получится автоматизированный бардак.
 
Миллион ячеек на листе - будет действительно долго. Заполните массив и выгрузите его на лист.
 
Вбиваем в строку имен(маленькое окошко в левой части - левее строки формул - в котором отображается адрес/имя активной ячейки) A999999 и жмем Enter. Выделится ячейка А999999. Вписываем в неё 1(или еще чего). копируем, Ctrl+Shift+вверх. Выделится весь столбец. Вставляем скопированное. В ячейку А1 вписываем 1, в А2 - 2. Выделяем А1:А2, переводим курсор в правый нижний угол(до появления крестика) - двойной щелчок левой кнопки мыши. Все заполнится как хотели.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Для этого есть инструмент "Прогрессия"
Код
[a1] = 1
[a1].DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Stop:=999999, Trend:=False
 
 
Спасибо, но в VBA не силен и всё равно не запомню эту прогрессию. Также как я не знаю как выгрузить массив на лист. А вот метод Приста мне очень понравился. Всем спасибо!
Если автоматизировать бардак, то получится автоматизированный бардак.
 
гы) это та же Прогрессия, но выполняемая ручками и с автоматическим определением Экселем её типа и шага.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Наверх