Как приостановить обновление графиков в Excel
RMMMM
Дата: Пятница, 08.02.2019, 22:38 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
Здравствуйте, С помощью VBA создается около сотни значений, по этим значениям строится с десяток графиков. Судя по всему Excel обновляет графики при каждом изменении значения ячейки. Если убрать графики, то код работает меньше секунды, с графиками около минуты. [vba]Код
Application.ScreenUpdating = False
[/vba] и [vba]Код
Application.Calculation = xlCalculationManual
[/vba] помогают несильно. Сам код простой: [vba]Код
NextDate = DateAdd("d", i, Start_Date) ActiveSheet.Cells(rowIndex, j).Value = NextDate
[/vba]
Здравствуйте, С помощью VBA создается около сотни значений, по этим значениям строится с десяток графиков. Судя по всему Excel обновляет графики при каждом изменении значения ячейки. Если убрать графики, то код работает меньше секунды, с графиками около минуты. [vba]Код
Application.ScreenUpdating = False
[/vba] и [vba]Код
Application.Calculation = xlCalculationManual
[/vba] помогают несильно. Сам код простой: [vba]Код
NextDate = DateAdd("d", i, Start_Date) ActiveSheet.Cells(rowIndex, j).Value = NextDate
[/vba] RMMMM
Сообщение отредактировал RMMMM - Пятница, 08.02.2019, 22:52
Ответить
Сообщение Здравствуйте, С помощью VBA создается около сотни значений, по этим значениям строится с десяток графиков. Судя по всему Excel обновляет графики при каждом изменении значения ячейки. Если убрать графики, то код работает меньше секунды, с графиками около минуты. [vba]Код
Application.ScreenUpdating = False
[/vba] и [vba]Код
Application.Calculation = xlCalculationManual
[/vba] помогают несильно. Сам код простой: [vba]Код
NextDate = DateAdd("d", i, Start_Date) ActiveSheet.Cells(rowIndex, j).Value = NextDate
[/vba] Автор - RMMMM Дата добавления - 08.02.2019 в 22:38
_Boroda_
Дата: Пятница, 08.02.2019, 23:39 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация:
6505
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
А если сначала создаваемые значения класть в массив, а потом сразу все выкладывать на лист?
А если сначала создаваемые значения класть в массив, а потом сразу все выкладывать на лист? _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение А если сначала создаваемые значения класть в массив, а потом сразу все выкладывать на лист? Автор - _Boroda_ Дата добавления - 08.02.2019 в 23:39
vikttur
Дата: Пятница, 08.02.2019, 23:52 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
На правах догадки.Ctrl+6 - скрывает все объекты. В коде перед изменением скрыть, потом отобразить. Вдруг поможет ускориться?
На правах догадки.Ctrl+6 - скрывает все объекты. В коде перед изменением скрыть, потом отобразить. Вдруг поможет ускориться? vikttur
Ответить
Сообщение На правах догадки.Ctrl+6 - скрывает все объекты. В коде перед изменением скрыть, потом отобразить. Вдруг поможет ускориться? Автор - vikttur Дата добавления - 08.02.2019 в 23:52
RMMMM
Дата: Суббота, 09.02.2019, 01:01 |
Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
А если сначала создаваемые значения класть в массив, а потом сразу все выкладывать на лист?
А как сразу все выкладывать? Все равно же будет [vba]Код
ActiveSheet.Cells(rowIndex, j).Value =
[/vba] только не просто значению, а значению из массива?
А если сначала создаваемые значения класть в массив, а потом сразу все выкладывать на лист?
А как сразу все выкладывать? Все равно же будет [vba]Код
ActiveSheet.Cells(rowIndex, j).Value =
[/vba] только не просто значению, а значению из массива?RMMMM
Сообщение отредактировал RMMMM - Суббота, 09.02.2019, 01:02
Ответить
Сообщение А если сначала создаваемые значения класть в массив, а потом сразу все выкладывать на лист?
А как сразу все выкладывать? Все равно же будет [vba]Код
ActiveSheet.Cells(rowIndex, j).Value =
[/vba] только не просто значению, а значению из массива?Автор - RMMMM Дата добавления - 09.02.2019 в 01:01
RMMMM
Дата: Суббота, 09.02.2019, 01:09 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
На правах догадки. Ctrl+6 - скрывает все объекты. В коде перед изменением скрыть, потом отобразить. Вдруг поможет ускориться?
До [vba]Код
Dim sObject As Shape For Each sObject In ActiveSheet.Shapes If sObject.Visible = True Then sObject.Visible = False End If Next
[/vba] и после [vba]Код
For Each sObject In ActiveSheet.Shapes If sObject.Visible = False Then sObject.Visible = True End If Next
[/vba] не помогло
На правах догадки. Ctrl+6 - скрывает все объекты. В коде перед изменением скрыть, потом отобразить. Вдруг поможет ускориться?
До [vba]Код
Dim sObject As Shape For Each sObject In ActiveSheet.Shapes If sObject.Visible = True Then sObject.Visible = False End If Next
[/vba] и после [vba]Код
For Each sObject In ActiveSheet.Shapes If sObject.Visible = False Then sObject.Visible = True End If Next
[/vba] не помоглоRMMMM
Ответить
Сообщение На правах догадки. Ctrl+6 - скрывает все объекты. В коде перед изменением скрыть, потом отобразить. Вдруг поможет ускориться?
До [vba]Код
Dim sObject As Shape For Each sObject In ActiveSheet.Shapes If sObject.Visible = True Then sObject.Visible = False End If Next
[/vba] и после [vba]Код
For Each sObject In ActiveSheet.Shapes If sObject.Visible = False Then sObject.Visible = True End If Next
[/vba] не помоглоАвтор - RMMMM Дата добавления - 09.02.2019 в 01:09
Pelena
Дата: Суббота, 09.02.2019, 08:22 |
Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Нет, массив можно выкладывать на лист целиком, а не поячеечно. Вы бы пример небольшой приложили, а то ни файла, ни кода толком нет
Нет, массив можно выкладывать на лист целиком, а не поячеечно. Вы бы пример небольшой приложили, а то ни файла, ни кода толком нетPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Нет, массив можно выкладывать на лист целиком, а не поячеечно. Вы бы пример небольшой приложили, а то ни файла, ни кода толком нетАвтор - Pelena Дата добавления - 09.02.2019 в 08:22
_Boroda_
Дата: Суббота, 09.02.2019, 17:59 |
Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация:
6505
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
А как сразу все выкладывать?
Вот так [vba]Код
'формируем массив 5*3 ReDim ar(1 To 5, 1 To 3) For i = 1 To 5 For j = 1 To 3 ar(i, j) = i + j Next j Next i 'кладем его на лист Range("B4").Resize(5, 3) = ar
[/vba] И да, с примером все было бы гораздо проще
А как сразу все выкладывать?
Вот так [vba]Код
'формируем массив 5*3 ReDim ar(1 To 5, 1 To 3) For i = 1 To 5 For j = 1 To 3 ar(i, j) = i + j Next j Next i 'кладем его на лист Range("B4").Resize(5, 3) = ar
[/vba] И да, с примером все было бы гораздо проще_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение А как сразу все выкладывать?
Вот так [vba]Код
'формируем массив 5*3 ReDim ar(1 To 5, 1 To 3) For i = 1 To 5 For j = 1 To 3 ar(i, j) = i + j Next j Next i 'кладем его на лист Range("B4").Resize(5, 3) = ar
[/vba] И да, с примером все было бы гораздо прощеАвтор - _Boroda_ Дата добавления - 09.02.2019 в 17:59
bmv98rus
Дата: Суббота, 09.02.2019, 23:14 |
Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
_Boroda_ , Александр, Redim, а не Dim на всякий случай?
_Boroda_ , Александр, Redim, а не Dim на всякий случай?bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение _Boroda_ , Александр, Redim, а не Dim на всякий случай?Автор - bmv98rus Дата добавления - 09.02.2019 в 23:14
_Boroda_
Дата: Воскресенье, 10.02.2019, 01:57 |
Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация:
6505
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Да, Redim. Если раньше был массив ar, то его меняем, если не было, то и ладно
Да, Redim. Если раньше был массив ar, то его меняем, если не было, то и ладно _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Да, Redim. Если раньше был массив ar, то его меняем, если не было, то и ладно Автор - _Boroda_ Дата добавления - 10.02.2019 в 01:57