|
|
|
оптимизация кода заполнения ячеек формулами
|
|||
|---|---|---|---|
|
#18+
Как лучше переписать код чтобы при его выполнении не было мерцания экрана? и выполняется он очень медлено :( Заранее спасибо ! Private period_d1d2 As Integer ' количество строчек Private Const RowHeaderOffest As Integer = 8 ' смещение по горизонтали относительно первой строчки Private Sub fillFormulas() For Each k In sh_to.Range(sh_to.Cells(RowHeaderOffest + period_d1d2, 4), sh_to.Cells(RowHeaderOffest + period_d1d2, 7)) k.FormulaR1C1 = "=SUM(R[-" & period_d1d2 & "]C:R[-1]C)" k.Font.Bold = True Next k i = 0 For D = d1 To d2 - 1 sh_to.Cells(i + RowHeaderOffest, 1).Value = d1 + i sh_to.Cells(i + RowHeaderOffest, 2).FormulaR1C1 = "=VLOOKUP(RC[-1],eur!C1:C2,2)" sh_to.Cells(i + RowHeaderOffest, 3).FormulaR1C1 = "=VLOOKUP(RC[-2],usd!C1:C2,2)" sh_to.Cells(i + RowHeaderOffest, 7).FormulaR1C1 = "=SUM(RC[-3],RC[-1]/RC[-4],RC[-2]*RC[-5]/RC[-4])" sh_to.Cells(i + RowHeaderOffest, 7).NumberFormat = "#,##0.00" i = i + 1 Next D sh_to.Cells(i + RowHeaderOffest, 7).NumberFormat = "#,##0.00" End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 16:30:21 |
|
||
|
оптимизация кода заполнения ячеек формулами
|
|||
|---|---|---|---|
|
#18+
Мерцание отменяется так. Application.ScreenUpdating() = False - в начале функции Application.ScreenUpdating() = True - в конце функции По поводу ускорения работы. Здесь, на мой взгляд, только одна строка замедляет работу: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 17:21:41 |
|
||
|
оптимизация кода заполнения ячеек формулами
|
|||
|---|---|---|---|
|
#18+
k-nike огромное спасибо макрос стал намного приятнее работать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 18:13:16 |
|
||
|
оптимизация кода заполнения ячеек формулами
|
|||
|---|---|---|---|
|
#18+
Я бы при отключении ScreenUpdating включил что-нибудь в StatusBar, чтобы не вызвать эффект "зависания". Application.ScreenUpdating = False Application.Statusbar = "Ждите, идет обработка данных..." Обнуляется StatusBar так же: Application.Statusbar = False (Переводится в стандартную надпись "готово") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 18:23:57 |
|
||
|
оптимизация кода заполнения ячеек формулами
|
|||
|---|---|---|---|
|
#18+
Еще выруби автоматический пересчёт. Лучше после вписывания всех формул один раз все пересчитать: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 22:08:12 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33566248&tid=2185169]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 449ms |

| 0 / 0 |
