Страницы: 1
RSS
Как удалить определенные строки?
 
Подскажите пожалуйста как удалять строки через какое то количество строк, например мне нужно удалить 1,3,5,7,9 и т.д. до 300?
 
Если 1,3,5,7,9 т.е. нечетные:  
Sub DelRow()  
Dim n As Long  
For n = 1 To 300 Step 2  
Rows(n).Delete  
Next n  
End Sub
 
{quote}{login=Павел А}{date=17.11.2010 09:06}{thema=}{post}Если 1,3,5,7,9 т.е. нечетные:  
Sub DelRow()  
Dim n As Long  
For n = 1 To 300 Step 2  
Rows(n).Delete  
Next n  
End Sub{/post}{/quote}  
может так все таки  
Sub DelRow()  
Dim n As Long  
For n = 300 To 1 Step -2  
Rows(n).Delete  
Next n  
End Sub  
21102
Спасибо
 
Наоборот!  
 
For n = 300 To 1 Step -2  
 
Только может не 300, а 299...
 
Блин, что то ничего не работает(
 
{quote}{login=}{date=17.11.2010 09:49}{thema=}{post}Блин, что то ничего не работает({/post}{/quote}  
почитайте правила форума может быстрее заработает
Спасибо
 
Извиняюсь - не учел, что стороки то удаляются.  
Sub DelRow()  
Dim n As Long  
For n = 299 To 1 Step -2  
Rows(n).Delete  
Next n  
End Sub
 
Так проще:    
 
Sub DelRow()  
   For n& = 1 To 150  
       Rows(n&).Delete  
   Next  
End Sub  
 
Есть и другие варианты (которые работают намного быстрее - но там кода больше)
 
{quote}{login=EducatedFool}{date=17.11.2010 10:47}{thema=}{post}Так проще:    
 
Sub DelRow()  
   For n& = 1 To 150  
       Rows(n&).Delete  
   Next  
End Sub  
 
Есть и другие варианты (которые работают намного быстрее - но там кода больше){/post}{/quote}  
для автора надо так  
Rows(n& + 1).Delete
Спасибо
 
Тогда, если согласно темы, уж так:  
--------------------  
Sub DelRow()  
For n& = 1 To 300  
Rows(n& + 1).Delete  
Next n&  
End Sub  
--------------------  
 
Вот такие пироги :)
<FONT COLOR="CadetBlue">
 
а можно ли удалять строки, если хотя бы в одном из столбцов стоит определенное значение. для данной таблицы - это слово "скважина"
 
{quote}{login=Дъмитръ}{date=17.11.2010 11:12}{thema=}{post}Тогда, если согласно темы, уж так:  
--------------------  
Sub DelRow()  
For n& = 1 To 300  
Rows(n& + 1).Delete  
Next n&  
End Sub  
--------------------  
 
Вот такие пироги :){/post}{/quote}  
 
Удаляет четные строки.  
 
А вот так нормально удаляет нечетные:  
Sub DelRow()  
For n = 1 To 150  
Rows(n).Delete  
Next  
End Sub  
 
Поясните пожалуйста, для чего в макросе от EducatedFool применен &:  
Sub DelRow()  
For n& = 1 To 150  
Rows(n&).Delete  
Next  
End Sub
 
{quote}{login=Дъмитръ}{date=17.11.2010 11:12}{thema=}{post}Тогда, если согласно темы, уж так:  
--------------------  
Sub DelRow()  
For n& = 1 To 300  
Rows(n& + 1).Delete  
Next n&  
End Sub  
--------------------  
 
Вот такие пироги :){/post}{/quote}  
 
рано еще вам поправлять образованных :)  
 
EducatedFool сказал что 1 to 150? значит так и надо :)
 
а можно ли удалять строки, если хотя бы в одном из столбцов стоит определенное значение. для данной таблицы - это слово "скважина"
 
Хм... Невидимка, тогда кто я? :)  
Скажите пожалуйста, иначе меня терзают смутные сомнения...  
 
-------------------  
n&  - Dim n As Long  
-------------------  
 
P.S. Да, заметьте, я не претендую на место уважаемого EducatedFool.
<FONT COLOR="CadetBlue">
 
Ошибся, ждем ответа от образованных :)
<FONT COLOR="CadetBlue">
 
предлагаю учредить приставку к нику  - educated/  
и присваивать ее общим голосованием в конце года  
 
educatedfool может претендовать на второе образование :)
Живи и дай жить..
 
{quote}{login=Дъмитръ}{date=17.11.2010 12:01}{thema=}{post}Ошибся, ждем ответа от образованных :){/post}{/quote}Я не_образованный, но думаю, n& преобразует число n текст "n" (должно быть Rows("n")
 
Dim x%  'Integer  
Dim y#  'Double  
Dim z!  'Single  
Dim v&   'Long  
Dim w@   'Currency  
Dim q$  'String
 
{quote}{login=}{date=17.11.2010 11:41}{thema=}{post}а можно ли удалять строки, если хотя бы в одном из столбцов стоит определенное значение. для данной таблицы - это слово "скважина"{/post}{/quote}  
в файл не смотрел но примерно так если скважина в столбце А  
Sub DelRow()  
Dim n As Long  
For n = 300 To 1 Step -1  
if cells(i,1)= "скважина" then Rows(n).Delete  
Next n  
End Sub
Спасибо
 
слэн, представте, прошло десять лет и Ваш ник преобразовался в educatededucatededucatededucatededucatededucatededucatededuc­atededucatededucatedслэн :)  
 
Спасибо, Тёзка! ;)
<FONT COLOR="CadetBlue">
 
нет, только educatedfool может претендовать на второе образование..  
 
 
спасибо конечно за такой прогноз  :) но  
 
нет, только educatedfool может претендовать на второе образование..
Живи и дай жить..
 
первый раз слышу про такие свойства &  
 
всегда думал, что это просто короткий синоним as long при объявлении, а при использовании в выражении константы, представляет ее в нужном типе данных  
 
при отсутствии option explicit в модуле, переменная объявляется при первом использовании( на самом деле любая процедура предкомпилируется и переменные объявляются уже при старте )  
 
можете убедиться при пошаговом  выполнении..  
 
написать в одном месте r#, а в другом r& не получится..
Живи и дай жить..
 
{quote}{login=}{date=17.11.2010 11:41}{thema=}{post}а можно ли удалять строки, если хотя бы в одном из столбцов стоит определенное значение. для данной таблицы - это слово "скважина"{/post}{/quote}  
 
В примере макрос удаляет строки со словом "Скважина" в столбце А.
 
Всем большое спасибо!)
Страницы: 1
Читают тему
Наверх