|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.01.2013, 17:19 | #1 |
Форумчанин
Регистрация: 29.04.2009
Сообщений: 119
|
ограничить количество строк
Добрый вечер друзья. Всех с Новым Годом!
Прошу помощи, здесь мне однажды написали код для вставки в последнюю пустую строку, успешно им пользуюсь, вот он: ActiveSheet.Unprotect [b4:j13].Copy Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("f4:f13,b4:b13,g5:g13").Selec t Selection.ClearContents Range("H4").Select ActiveCell.FormulaR1C1 = "=RC[23]" ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ False, AllowSorting:=True, AllowFiltering:=True ActiveSheet.EnableSelection = xlUnlockedCells Range("b4").Select End Sub Вопрос такой: а нельзя изменить выделенную часть кода, чтобы он искал пустую строку не до конца листа (66 с лишним тысяч строк ведь), а лишь, допустим, до 4000-й строки? Мне кажется, это ускорит выполнение кода, или ошибаюсь? Оптимизирую сейчас рабочие книги, вот, задумался... |
01.01.2013, 18:28 | #2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
vostok, я сделал циклы со 100 000 итерациями (витками) и разница оказалась в 0,2 секунды. Т.е. эту часть кода можно не оптимизировать.
Вам нужно избавиться от копирования и вставки. Копирование и вставку нужно делать, если нужно перенести форматирование текста (например, название шрифта, жирность текста) или если нужно что-то ещё перенести кроме данных. И нужно избавиться от Select. |
01.01.2013, 18:54 | #3 |
Форумчанин
Регистрация: 29.04.2009
Сообщений: 119
|
Как избавиться? Это основная операция по сбору данных, как ее иначе сделать, если не через копипаст. И select чем не угодил? Надо избирательно очистить столбцы.
|
01.01.2013, 19:31 | #4 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Этот кусок следует переписать так:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
01.01.2013, 19:35 | #5 |
Участник клуба
Регистрация: 15.12.2009
Сообщений: 1,448
|
Селекты тормозят код
Без них, но с копированием: Код:
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru https://yoomoney.ru: 41001419691823 |
02.01.2013, 00:35 | #6 |
Форумчанин
Регистрация: 29.04.2009
Сообщений: 119
|
Парни, спасибо, опробовал оба кода, от Казанского - супер, очень быстро, я даже не вижу выделения вставляемой таблицы, но у меня шустрый комп, а работа на слабых машинах, проверю там завтра. Селект "b4" - надо, курсор после очистки должен установиться в начальную ячейку для ввода. Код от Сергея тормозит, выполняется 5 секунд
Спасибо за отзывчивость! |
02.01.2013, 03:11 | #7 |
Участник клуба
Регистрация: 15.12.2009
Сообщений: 1,448
|
Это ВАШ код, я только убрал селекты
Скрипт советовал ещё "избавиться от копирования и вставки" (что и сделал Казанский) Результат видите?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru https://yoomoney.ru: 41001419691823 |
02.01.2013, 18:42 | #8 |
Форумчанин
Регистрация: 29.04.2009
Сообщений: 119
|
Проверил, все просто замечательно, работает быстро, как и хотелось. Нет видимого выделения пока таблицы, потом места для нее в нижнем списке. Спасибо еще раз!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сканирования строк. Зная количество строк и первый элемент, это количество символов с троке. | dimon9 | Общие вопросы C/C++ | 8 | 02.11.2012 22:40 |
Потоки, как ограничить количество? | bakanaev | Общие вопросы Delphi | 2 | 16.08.2012 16:55 |
Ограничить количество запуска программы | Tuman777 | Общие вопросы Delphi | 12 | 15.10.2011 20:27 |
как ограничить количество вводимых чисел пользователем? | Kati | Помощь студентам | 4 | 21.10.2010 11:56 |
Ограничить количество клиентов | SwiP | Работа с сетью в Delphi | 1 | 16.06.2010 19:17 |