Написал макрос VBA Excel с массивами и словарями Построено так (если отбросить лишнее): сначала загружаются словари, потом массивам присваиваются значения соответствующих колонок таблицы, потом начинаются главные циклы макроса, в которых используются загруженные словари и массивы. (т.е. словари и массивы загружаются один раз, в начале).
При первом запуске макроса после открытия эксель файла - он будет работать 39 сек. Если после первого запуска макроса запустить его повторно - он будет работать 1 (одну) секунду. Численный результат работы макроса в обоих случаях один и тот же. Макрос обрабатывает довольно большую таблицу. Файл мой потихоньку разрастается. Сейчас в нем уже порядка 40 Мб.
Было ли у вас такое (разное время работы программы при первом и повторном запусках)? И куда "копать" в поисках возможной причины?
PS. Поясню. Вопрос для меня имеет практическое значение. Потому что я должен добавить в этот макрос один большой цикл в 10-20 тыс итераций с меняющимися параметрами. Соответственно, это будет 10 тыс х 39 сек или 10 тыс х 1 сек. Разница!
Прошу помощи. У меня такая ситуация. Есть два несмежных диапазона, состоящие из ячеек A3 :D 3 и T3:V3. В ходе исполнения VBA-программы я с помощью циклов меняю некоторые важные для меня переменные. Мне нужно помещать на каждом цикле значения этих переменных в эти ячейки. Ячейки между ними (с E3 по S3) заняты различными формулами, которые я хотел бы сохранить.
Вот, как это выглядит в моем коде:
Sub ДЛЯ_ФОРУМА()
'ОБЪЯВИТЬ ПЕРЕМЕННЫЕ: Dim Rng4 As Range Dim Arr4 Dim a1 As Variant, a2 As Variant, a3 As Variant, a4 As Variant, a5 As Variant, a6 As Variant, a7 As Variant
'ВВОД НЕОБХОДИМЫХ НАЧАЛЬНЫХ УСТАНОВОК: kShift = 4 k = 1 NUM = 1 NUMFix = 0
'ЗАПУСКАЕМ ЦИКЛЫ РАСЧЕТА ПЕРЕМЕННЫХ: For j% = 1 To 300 Step 1 For i% = 1 To 300 Step 1 For m% = 5 To 77 Step 2 For indentUp% = 10 To 500 Step 10 For indentDown% = 10 To 500 Step 10
'ТУТ ПРОИСХОДЯТ РАСЧЕТЫ '....................... '....................... '.......................
k = k + 1 NUMFix = NUM NUM = NUM + 1
Next indentDown Next indentUp Next m Next i Next j
End Sub
То, что я получаю на листе Results-1D, выглядит следующим образом (разумеется, в ячейках числа, соответствующее этим формулам, а не сами формулы):
A3 = j / 1000 B3 = i / 1000 C3 = k D3 = NUMFix E3 = m F3 = indentUp G3= indentDown
Ячейки с H3 по V3 содержат "#Н/Д". Повторю, мне нужен был вывод первых четырех значений в ячейки "A3-D3", а следующих трех значений в ячейки "T3:V3". В ячейках "E3:S3" у меня записаны Excel-формулы, которые я хотел бы сохранить.
Не могу понять, в чем моя ошибка?
Изменено: GuestHere - 12.01.2013 11:31:11(после удаления смайлов появились какие-то точки с запятой и пробелы!)