Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2010, 07:13   #1
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию Удаление строк

Вложение 30918Уважаемые форумчане, здравия желаю Всем!
Помогите удалить строки в таблице используя оператор цикла
"Слепленный" мною макрос работает не корректно(останавливает процедуру удалив одну строку)
Подробнее(нагляднее) во вложении.
Вложения
Тип файла: rar РП 2009 г.rar (53.5 Кб, 21 просмотров)
Trimbl вне форума Ответить с цитированием
Старый 16.10.2010, 09:18   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Подробнее(нагляднее) во вложении
Нагляднее, но вот начало кода
Код:
With ActiveCell
это о чем??
Здесь нужно бы явно указать эту самую ActiveCell, с чего начинаем и что является у Вас условием удаления участка.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 16.10.2010, 10:53   #3
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Извиняюсь и поясняю:ActiveCell это ячейка с цифрой 1(А12), а условие удаления блока - "лишние" строки должны удаляться пока не останется только одна строка с желтыми ячейками(двенадцатая)
Trimbl вне форума Ответить с цитированием
Старый 16.10.2010, 11:40   #4
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Нагляднее, но вот начало кода
Код:
With ActiveCell
это о чем??
Здесь нужно бы явно указать эту самую ActiveCell, с чего начинаем и что является у Вас условием удаления участка.
VictorM Задача состоит в том чтобы при выделении ячейки А12(номер участка) и запуске макроса DellUhastok кнопкой "удалить участок" далились бы все строки с желтыми ячейками(их количество- величина переменная), кроме одной, желательно первой (в приведенном примере 12 строка).
Trimbl вне форума Ответить с цитированием
Старый 16.10.2010, 12:22   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Это все понятно..
но у Вас в коде стоит - If ActiveCell = 1
это и является условием удаления?
Если единица?
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 16.10.2010, 12:25   #6
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Это все понятно..
но у Вас в коде стоит - If ActiveCell = 1
это и является условием удаления?
Если единица?
Да, Вы правильно поняли
Trimbl вне форума Ответить с цитированием
Старый 16.10.2010, 23:01   #7
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

И всеже условия задачи не совсем понятны.
Если я правильно понял условия удаления участка (судя по Вашему предварительному коду), то тогда и цикл вроде как не нужен. Или строк участка может быть сколько угодно?
Код:
Sub УдалитьУчасток()
    Критерий = [a12]
    If Критерий = 1 Then
        [b12:b13].EntireRow.Delete
        [a10,a11] = "" 'еще можно добавить ячейки, которые должны быть очищены
        [b12] = 1
    End If
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 17.10.2010, 10:21   #8
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
И всеже условия задачи не совсем понятны.
Если я правильно понял условия удаления участка (судя по Вашему предварительному коду), то тогда и цикл вроде как не нужен. Или строк участка может быть сколько угодно?
Код:
Sub УдалитьУчасток()
    Критерий = [a12]
    If Критерий = 1 Then
        [b12:b13].EntireRow.Delete
        [a10,a11] = "" 'еще можно добавить ячейки, которые должны быть очищены
        [b12] = 1
    End If
End Sub
Уважаемый VictorM ! Благодарю за ответ, извиняюсь за относительно долгое молчание(слишком большая разница в часовых поясах) Но:
1) Количество строк - величина переменная(>20, а может быть и 30)
2)Прошу помочь в создании макроса удаления строк именно используя операторы цикла.
Trimbl вне форума Ответить с цитированием
Старый 17.10.2010, 12:56   #9
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Смотрите, так?
Вложения
Тип файла: zip РП_1_ 2009 г.zip (28.3 Кб, 19 просмотров)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 17.10.2010, 13:39   #10
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Смотрите, так?
Благодарю за ответ, но это немного не то. Мкрос в предложенном примере работает только если количество строк не превышает 4. При большем количестве срок (5 и более) - работа не корректна.
Trimbl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление строк alexk Microsoft Office Excel 24 15.02.2011 08:34
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
Удаление строк из БД Danilka БД в Delphi 12 14.04.2010 21:27
Удаление строк Dr.Badnezz Общие вопросы Delphi 1 07.10.2008 15:22
удаление строк Dime_x Microsoft Office Excel 2 07.10.2008 13:38