Как правильно удалить пустую строку ??

Программирование на Visual Basic for Applications
Legachoff
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 14.10.2005 (Пт) 15:09

Как правильно удалить пустую строку ??

Сообщение Legachoff » 25.10.2005 (Вт) 15:04

Код не работает :( :(

Sub delrow()
Dim r As Variant
For r = 2 To 15
If ActiveSheet.Cells(r, 1) = Empty Then
Rows(r).Delete
r = r - 1
End If
Next r
End Sub

http://wikiatlas.ru/
http://wikiatlas.org.ua/
http://wikikak.org/
http://text-books.ru/
Последний раз редактировалось Legachoff 24.12.2012 (Пн) 12:48, всего редактировалось 1 раз.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.10.2005 (Вт) 15:10

dim r as long
for r=15 to 2 step -1
if isempty(cells(r,1).value) then rows(r).delete
next
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Legachoff
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 14.10.2005 (Пт) 15:09

Спасибо !!!

Сообщение Legachoff » 25.10.2005 (Вт) 15:18

:) :) :) :) Спасибо, я малёхо протупил. Всё работает.

Legachoff
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 14.10.2005 (Пт) 15:09

?

Сообщение Legachoff » 25.10.2005 (Вт) 17:37

GSerg
ещё вопрос, а если строки не пустые а содержать формулу тогда как быть ??

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.10.2005 (Вт) 17:45

if len(.value)=0
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.10.2005 (Ср) 7:45

Лучше не .Value проверять, а .FormulaR1C1.
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.10.2005 (Ср) 13:12

Если в ячейке формула, возвращающая пустую строку, то FormulaR1C1 будет непусто, а value пусто...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.10.2005 (Ср) 13:39

Я понял его наоборот :)
Что в ячейке может быть формула, но возвращать Empty, а ее надо определить.
Lasciate ogni speranza, voi ch'entrate.

Legachoff
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 14.10.2005 (Пт) 15:09

!

Сообщение Legachoff » 26.10.2005 (Ср) 16:49

Ещё можно сделать так:

Dim r As Variant
For r = "значение" To "значение" Step -1
If Not IsNumeric(Cells(r, 1).Value) Then Rows(r).Delete
Next r

brigval
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 16.10.2005 (Вс) 12:37
Откуда: Подмосковье

Re: Как правильно удалить пустую строку ??

Сообщение brigval » 27.10.2005 (Чт) 2:23

Legachoff писал(а):Код не работает :( :(

Sub delrow()
Dim r As Variant
For r = 2 To 15
If ActiveSheet.Cells(r, 1) = Empty Then
Rows(r).Delete
r = r - 1
End If
Next r
End Sub


If ActiveSheet.Rows(r).Text="" Then ActiveSheet.Rows(r).Delete
если строка не пустая, возвращается Null
Работает не только для строк но и для любых Range.
brigval

Franck
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 09.04.2004 (Пт) 12:21

Сообщение Franck » 15.02.2006 (Ср) 11:40

Код: Выделить всё
Range("myRange").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Устарело, но может кому пригодится. :wink:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.02.2006 (Ср) 11:44

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Franck
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 09.04.2004 (Пт) 12:21

Сообщение Franck » 16.02.2006 (Чт) 11:04

GSerg
Типа прикольная ссылка. :wink:
В смысле, Вы не то скопировали.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.02.2006 (Чт) 15:39

Нет, я скопировал именно то...
Там, по ссылке, написано, что если в ячейке формула, которая возвращает пустое значение, то ячейка пустой не является. В частности, она не будет найдена через SpecialCells(xlCellTypeBlanks).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Franck
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 09.04.2004 (Пт) 12:21

Сообщение Franck » 16.02.2006 (Чт) 17:11

Упсс.. Был невнимателен, каюсь.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList