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

p/s. последняя строка закоментированна для того что бы файл не сохранялся и не требовался новый, при выходе просто не сохранять.
...
Рейтинг: 0 / 0
в готовом проекте ускорить или упростить работу макроса
    #39643094
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нехрен обрабатывать весь лист. Определи Range, в котором есть данные, и работай только с прямоугольными диапазонами.
...
Рейтинг: 0 / 0
в готовом проекте ускорить или упростить работу макроса
    #39643104
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, почему обрабатываю весь лист? дело в том что я изначально не знаю где и в какой строке или какие ячейки объедены, вот по этому я и выделяю всё
...
Рейтинг: 0 / 0
в готовом проекте ускорить или упростить работу макроса
    #39643129
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell) никто не отменял...
...
Рейтинг: 0 / 0
в готовом проекте ускорить или упростить работу макроса
    #39643131
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... как, впрочем, и .UsedRange.
...
Рейтинг: 0 / 0
в готовом проекте ускорить или упростить работу макроса
    #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
в готовом проекте ускорить или упростить работу макроса
    #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
в готовом проекте ускорить или упростить работу макроса
    #39645669
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел выход , как то так:
Код: vbnet
1.
xlp.Application.Range("A1:C200") .Borders.LineStyle = -4142
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / в готовом проекте ускорить или упростить работу макроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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