Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: МАКРОС удаления строк !!!!!! HELP Добавлено: 17.11.09 09:37  

Автор вопроса:  Юлька | ICQ: 293469303 
Всем привет. помогите разобраться уважаемые умные люди!!! мне нужен макрос удаления нижних строк таблицы по заданному числу строк. т.е. есть цифра на листе которая означает кол-во необходимых после выполения макроса строк, и есть таблица с очень большим кол-вом строк. как их удалить??? делаю макрос по диапазону, но у меня очень много листов, поэтому менять заморочно.

ЖДУУУУУУУУУУ

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #1 Добавлено: 17.11.09 10:12
А ты можешь подробно описать что тебе нужно? А то из вот этого
мне нужен макрос удаления нижних строк таблицы по заданному числу строк. т.е. есть цифра на листе которая означает кол-во необходимых после выполения макроса строк, и есть таблица с очень большим кол-вом строк. как их удалить???
Вообще нихрена непонятно.

Ответить

Номер ответа: 2
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #2 Добавлено: 17.11.09 10:20
хорошо. есть таблица на листе. в ней много строк, напрмер 200, на листе есть изменяемая ячейка, которая показывает число строк которые надо оставить. напрмер 100. т.е. их надо удалить макросом, что бы не менять каждый раз в макросе диапазон удаления, а что бы он сам понимал сколько нижних ст рок надо удалить. листов много. в каждом надо все это проделать. ну что щас ясно?

Ответить

Номер ответа: 3
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #3 Добавлено: 17.11.09 11:16
  1. Sub DeleteRows()
  2. Rows(Cells(1, 1).Value + 1 & ":" & 65536).Delete 'В ячейке (1,1) - указываешь сколько строк нужно оставить
  3. End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #4 Добавлено: 19.11.09 08:50
спасибо огромное, но данный макрос убирает кол-во строк не в таблице а на листе. а можно ли привязать кол-во строк именно таблицы. а то на разных листах таблицы находятся на разной высоте. вот

Ответить

Номер ответа: 5
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #5 Добавлено: 19.11.09 10:46
  1. Sub DelRow()
  2.  
  3. LastRow = Cells(65536, 1).End(xlUp).Row     'последняя строка таблицы в столбце 1
  4. FirstRow = Cells(1, 1).End(xlDown).Row      'первая строка таблицы в столбце 1
  5. If FirstRow = LastRow Then FirstRow = 1     'на случай если таблица начинается с первой строки
  6. Rows(Cells(Row, Column).Value + FirstRow & ":" & LastRow).Delete 'Row, Column - адрес ячейки с количеством необходимых рядов
  7.  
  8. End Sub

Ответить

Номер ответа: 6
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #6 Добавлено: 20.11.09 09:35
уточните пожалуйста, что мнен делать со строкой 06 макроса вашего??? т.е. я ставлю вместо row номер столбца где находится кол-во рядов , в в column - номер строки этой ячейки??? т.е. напрмиер ячейка (1, 2) содержит число 15 (это кол-во необх строк) , а таблица начинается с 3 строки на листе , значит я пишу
Sub DelRow()
LastRow = Cells(65536, 1).End(xlUp).Row
FirstRow = Cells(1, 3).End(xlDown).Row
Rows(Cells(1, 2).Value + FirstRow & ":" & LastRow).Delete
End Sub
так?

Ответить

Номер ответа: 7
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #7 Добавлено: 20.11.09 09:53
и еще очень важный момент, мне надо чтобы удалялись только последние строки в таблице , а последняя где сумма оставалась. короче говоря: есть ячейка в которой стоит кол-во рядов в таблице , которое надо оставить но не удалять последнюю с суммой. есть еше один параметр- второй столбец в таблице содержит значения, когда они становятся равными нулю, то эти строки все которые идут дальше (они все нулевые уже) можно удалять, но не трогать суммарную строчку

Ответить

Номер ответа: 8
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #8 Добавлено: 20.11.09 11:38
уточните пожалуйста, что мнен делать со строкой 06 макроса вашего??? т.е. я ставлю вместо row номер столбца где находится кол-во рядов , в в column - номер строки этой ячейки??? т.е. напрмиер ячейка (1, 2) содержит число 15 (это кол-во необх строк) , а таблица начинается с 3 строки на листе , значит я пишу
Да, все верно, только у тебя получается в:
  1. LastRow = Cells(65536, 1).End(xlUp).Row
что ты находишь ряд последней заполненной ячейки в первом столбце
  1. FirstRow = Cells(1, 3).End(xlDown).Row
,а здесь получается что ищешь ряд первой заполненной ячейки в теретьем столбце, но насколько я понимаю, это непринципиально.
и еще очень важный момент, мне надо
нужно написать:
  1. Rows(Cells(1, 2).Value + FirstRow & ":" & LastRow-1).Delete

Ответить

Номер ответа: 9
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #9 Добавлено: 20.11.09 13:36
уточните пожалуйста, что мнен делать со строкой 06 макроса вашего??? т.е. я ставлю вместо row номер столбца где находится кол-во рядов , в в column - номер строки этой ячейки??? т.е. напрмиер ячейка (1, 2) содержит число 15 (это кол-во необх строк) , а таблица начинается с 3 строки на листе , значит я пишу
Да, все верно,
Блин, нихрена не верно, row - строка(ряд), column - столбец(колонка)

Ответить

Номер ответа: 10
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #10 Добавлено: 23.11.09 14:57
паржон макрос не работает так как надо. он удаляет строку с суммой!!!!!!!!! а мне ее надо оставить. что делать . разрешите привести конкретный пример и хотела бы кокретный ответ.
Есть таблица на листе, она начинается (шапка) с 3й строки этого листа, в ней 50 строк, последняя из которых сумма (она должна остаться, порядковый номер этой строки № 54). заполнено в данной таблице значениями 23 строчки. остальные пустые. какой макрос написать чтоб осталось толко 23 строчки в ТАБЛИЦЕ и + суммовая строка))

Ответить

Номер ответа: 11
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #11 Добавлено: 23.11.09 15:01
паржон= пардон )))))))))

Ответить

Номер ответа: 12
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #12 Добавлено: 23.11.09 17:23
Ты как я понимаю вообще вникать в написанное не хочешь.

  1. Sub DelRow()
  2.  
  3.  LastRow = Cells(65536, 1).End(xlUp).Row     'последняя строка таблицы в столбце 1
  4.  FirstRow = Cells(1, 1).End(xlDown).Row      'первая строка таблицы в столбце 1
  5. 'В ячейке А2 (или другой) нужно указать сколько строк таблицы ты хочешь оставить т.е. A2 соответствует cells(2,1), A3 соответствует cells(3,1) и т.д.
  6.  Rows(Cells(2, 1).Value + FirstRow + 2 & ":" & LastRow - 1).Delete 'Row, Column
  7.  
  8. End Sub

Ответить

Номер ответа: 13
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #13 Добавлено: 25.11.09 12:59
ваууууууууу пасиба . пардон за тупизм. у меня прроблема была в другом))) там еще была строчка между суммовой и заполненными. поэтому пришлось поставить не -1 а -2. вот. и последний вопросик))))))))))

мне бы хотелось чтоб ссылка на этй ячейку (в которой стоит кол-во нужных строк ) была ч ерез дрйгой лист, т.к. смысла делать ее на каждом листе нету, ее значение везде одинаковое, а листов многоооооооо. подскажи те мне и это плиз)

Ответить

Номер ответа: 14
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #14 Добавлено: 25.11.09 16:37
Если ячейка находится на другом листе, то тогда тебе нужно перед её именем указывать её лист, т.е.

Вместо
  1. Сells(2,1).value

Пишешь
  1. Sheets(1).Сells(2,1).value  'Чтобы значение бралось из ячейки А2 с первого листа твоей книги

Или
  1. Sheets("Лист1").Сells(2,1).value  'Чтобы значение бралось из ячейки А2 на листе с именем Лист1

Ответить

Номер ответа: 15
Автор ответа:
 Юлька



ICQ: 293469303 

Вопросов: 2
Ответов: 12
 Профиль | | #15 Добавлено: 26.11.09 11:20
СПАСИБООООООООООООООООО

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам