Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / в готовом проекте ускорить или упростить работу макроса / 8 сообщений из 8, страница 1 из 1
11.05.2018, 10:16
    #39643081
assei
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
Ребята Здравствуйте! по возможности! кто может! в моем проекте VB6, реализован макрос VBA, но как вы можете убедится, при запуске этого макроса происходит работа "черепахи" , как возможно ускорить процесс макроса? Буду очень признателен в помощи или указания пути решения.

p/s. последняя строка закоментированна для того что бы файл не сохранялся и не требовался новый, при выходе просто не сохранять.
...
Рейтинг: 0 / 0
11.05.2018, 10:39
    #39643094
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
А нехрен обрабатывать весь лист. Определи Range, в котором есть данные, и работай только с прямоугольными диапазонами.
...
Рейтинг: 0 / 0
11.05.2018, 10:48
    #39643104
assei
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
Akina, почему обрабатываю весь лист? дело в том что я изначально не знаю где и в какой строке или какие ячейки объедены, вот по этому я и выделяю всё
...
Рейтинг: 0 / 0
11.05.2018, 11:22
    #39643129
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell) никто не отменял...
...
Рейтинг: 0 / 0
11.05.2018, 11:22
    #39643131
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
... как, впрочем, и .UsedRange.
...
Рейтинг: 0 / 0
13.05.2018, 11:35
    #39643799
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
assei,
торможение в основном происходит потому, что команда
Код: vbnet
1.
.Selection.AutoFill Destination:=.ActiveSheet.Range("E:E"), Type:=0 'снимаем фильтр

заполняет формулой весь столбец. Удалите ее, а в предыдущей команде определяйте последнюю строку по 4, а не по 1 столбцу.
Было:
Код: vbnet
1.
2.
3.
4.
5.
.Range("E1").Select 'выделяем ячейку
.Range("E1:E" & .Cells(.Rows.Count, 1).End(-4162).Row).Formula = _
"=OR(LEFT(RC[-4])=""№"",LEFT(R[1]C[-4])=""№"")" 'устанавливаем формулу

.Selection.AutoFill Destination:=.ActiveSheet.Range("E:E"), Type:=0 'снимаем фильтр

Стало:
Код: vbnet
1.
2.
.Range("E1:E" & .Cells(.Rows.Count, 4).End(-4162).Row).Formula = _
"=OR(LEFT(RC[-4])=""№"",LEFT(R[1]C[-4])=""№"")" 'устанавливаем формулу

Желательно также избавиться от Select и Selection, почитайте http://www.sql.ru/faq/faq_topic.aspx?fid=4344
Но и так сильных тормозов уже не будет.
...
Рейтинг: 0 / 0
16.05.2018, 16:34
    #39645654
assei
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
Казанский, шикарно! код уменьшился как минимум раза в два, подскажите как можно уменьшить это:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
With xlp.Application.Range("A1:C200") 'макрос убирает прорисованные границы в диапазоне  
    .Borders(5).LineStyle = -4142
    .Borders(6).LineStyle = -4142
    .Borders(7).LineStyle = -4142
    .Borders(8).LineStyle = -4142
    .Borders(9).LineStyle = -4142
    .Borders(10).LineStyle = -4142
    .Borders(11).LineStyle = -4142
    .Borders(12).LineStyle = -4142
End With
...
Рейтинг: 0 / 0
16.05.2018, 16:58
    #39645669
assei
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в готовом проекте ускорить или упростить работу макроса
нашел выход , как то так:
Код: vbnet
1.
xlp.Application.Range("A1:C200") .Borders.LineStyle = -4142
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / в готовом проекте ускорить или упростить работу макроса / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]