![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Столкнулся с проблемой, необходимо из Дельфи удалить все строки в Excel таблице, в которых в первом столбце содержится символ "х"? Помогите советом
Пробую так, но видать где-то ошибка: Код:
for I2 := 0 to 200 do
begin
if XL.Cells[I2,1].value='x' then begin XL.Rows[i2].delete;end;
end; |
|
#2
|
|||
|
|||
|
А в чем ошибка проявляется?
|
|
#3
|
||||
|
||||
|
Цитата:
Если в двух строках подряд имеется символ "х" удаляется только одна.. |
|
#4
|
||||
|
||||
|
Это потому, что когда ты удаляешь строку в экселе, то автоматически меняется адресация (попробуй ручками удалить строку). Чтобы обойти эту фичу делай просто - двигайся снизу вверх по строчкам, и цикл используй не for, а while или repeat.
|
|
#5
|
||||
|
||||
|
Спасибо за идею... все заработало. Единственный вопрос остался, как посчитать количество заполненных строк на листе чтобы правильно организовать цикл. Подскажите...
|
|
#6
|
||||
|
||||
|
Вот код на VBA, под Delphi сам адаптируй
![]() Код:
iAddress = Range("A1").SpecialCells(xlLastCell).Address
irow = Range("A1").SpecialCells(xlLastCell).Row
iclm = Range("A1").SpecialCells(xlLastCell).Column |
|
#7
|
|||
|
|||
|
Ребята, помогите пожалуйста!! Буду благодарен за VBA код для удаления строк, в которых в 13-ом столбце содержится значение "3". Очень надо.
|