|
|
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста! Написан макрос перебирания элементов управления - выбор вариантов расчетов и копирования информации каждого из вариантов на отдельный лист. Чтобы не наблюдать всю процедуру хождения по листам книги Excel и копирования данных, в самом начале макроса добавлена строка Application.ScreenUpdating = 0, в конце макроса Application.ScreenUpdating = 1. "Хождение по листам" действительно не отражается, но копирование информации на сводный лист все равно показывается и этот сводный лист "мигает". Как можно избавиться от этого мигания, чтобы было так: чистый лист - нажатие кнопки выполнения макроса - сразу лист с данными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:01 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Tatirus, вероятно в коде копирования включается/отключается обновление экрана. Посмотрите внимательнее внутри кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:14 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Hugo121, макрос состоит из таких кодов Sheets("Лист1").Cells(224, 2).Value = True Sheets("Лист1").Cells(230, 2).Value = True For i = 1 To 3 Sheets("Лист1").Cells(i + 206, 2).Value = True Sheets("Лист2").Select Range("copy").Select Selection.Copy Sheets("Лист3").Select Range("B" & ((i - 1) * Range("str").Value + 184)).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next Вроде бы не содержит обновления экрана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:22 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Tatirus, ну желательно полный код Здесь неясно где включение отключение обновление экрана. Просто такого быть не должно. Скорее всего косяк в коде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:41 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Tatirus, У меня этот код не мигает. Единственное, т.к. последний селект - это Sheets("Лист3").Select, то на него в конце вид и переключается. Поставьте в конце кода перед показом экрана селект на нужный лист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:44 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Хотя в данном примере можно все селекты повыкидывать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:47 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Shamanus, Вот весь код: Sub Эффективность_варианты() ' Перенос данных для каждого из вариантов на лист "Итоги" Application.ScreenUpdating = 0 Dim s1, s2, s3 As Boolean s1 = Sheets("Исходные").Cells(207, 2) s2 = Sheets("Исходные").Cells(208, 2) s3 = Sheets("Исходные").Cells(209, 2) s4 = Sheets("Исходные").Cells(222, 2) s5 = Sheets("Исходные").Cells(223, 2) s6 = Sheets("Исходные").Cells(224, 2) s7 = Sheets("Исходные").Cells(229, 2) s8 = Sheets("Исходные").Cells(230, 2) '============================================================================= ' Выбор варианта 1 Sheets("Исходные").Cells(222, 2).Value = True Sheets("Исходные").Cells(229, 2).Value = True Sheets("Лист").Select Range("Лист1").Select Selection.Copy Sheets("Итоги").Select Range("B23").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '============================================================================= ' Выбор варианта 2 Sheets("Исходные").Cells(223, 2).Value = True For i = 1 To 2 Sheets("Исходные").Cells(i + 228, 2).Value = True Sheets("Лист").Select Range("Лист1").Select Selection.Copy Sheets("Итоги").Select Range("B" & ((i - 1) * Range("str").Value + 63)).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next '============================================================================= ' Выбор варианта 3 Sheets("Исходные").Cells(224, 2).Value = True Sheets("Исходные").Cells(229, 2).Value = True Sheets("Исходные").Cells(229, 2).Value = True Sheets("Лист").Select Range("Лист1").Select Selection.Copy Sheets("Итоги").Select Range("B145").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Исходные").Cells(224, 2).Value = True Sheets("Исходные").Cells(230, 2).Value = True For i = 1 To 3 Sheets("Исходные").Cells(i + 206, 2).Value = True Sheets("Лист").Select Range("Лист1").Select Selection.Copy Sheets("Итоги").Select Range("B" & ((i - 1) * Range("str").Value + 184)).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next '============================================================================= Sheets("Исходные").Cells(207, 2) = s1 Sheets("Исходные").Cells(208, 2) = s2 Sheets("Исходные").Cells(209, 2) = s3 Sheets("Исходные").Cells(222, 2) = s4 Sheets("Исходные").Cells(223, 2) = s5 Sheets("Исходные").Cells(224, 2) = s6 Sheets("Исходные").Cells(229, 2) = s7 Sheets("Исходные").Cells(230, 2) = s8 Application.CutCopyMode = False Sheets("Итоги").Select Range("A1").Select Application.ScreenUpdating = 1 End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:52 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Tatirus, у меня код выполняется без заморочек По правилам написания кодов вроде тоже все корректно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:05 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Tatirus, ну а так, без лишних селектов не лучше? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:08 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Hugo121, Shamanus, ничего не понимаю... все равно вставка "мигает"... и без селектов не лучше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:11 |
|
||
|
Обновление данных на экране
|
|||
|---|---|---|---|
|
#18+
Tatirus, А файл сильно секретный может дадите его погонять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36689940&tid=2177979]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
101ms |
get topic data: |
41ms |
get forum data: |
5ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 481ms |

| 0 / 0 |
