Удаление сразу нескольких строк подряд...

Программирование на Visual Basic for Applications
Andrey_K
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 12.10.2006 (Чт) 12:25

Удаление сразу нескольких строк подряд...

Сообщение Andrey_K » 02.04.2007 (Пн) 9:58

В поиске не смог найти ничего подходящего....
Итак, у меня есть некий динамический список с данными.
По определенному условию мне необходимо удалить определенное количесво строк подряд, сколько строк удалять я знаю, с какого места, определяется переменной.
Итак, единственное решение которое я нашел это создать цикл. Что то типа:
For i=1 to 19
Rows(i).Select
next i
Selection.Delete Shift:=xlUp

Но может быть есть более простое решение чем создание цикла?
Может в это выражение Rows("1:12").Select можно как то засунуть переменные?

'Соответственно вместо 1 и 12 надо вставить переменные.....

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

Сообщение alibek » 02.04.2007 (Пн) 10:07

Кто мешает сделать так: Trim$(Str$(i)) & ":" & Trim$(Str$(i+18)) ?
Lasciate ogni speranza, voi ch'entrate.

Andrey_K
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 12.10.2006 (Чт) 12:25

Сообщение Andrey_K » 02.04.2007 (Пн) 10:36

Вау, так работает как надо :lol:
А коротенько так не скажите что это за выражения
Trim$(Str$(i) - как это работает? :?:

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

Сообщение alibek » 02.04.2007 (Пн) 10:43

Преобразует числовое значение в строковое и убирает хвостовые пробелы.
Lasciate ogni speranza, voi ch'entrate.

Andrey_K
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 12.10.2006 (Чт) 12:25

Сообщение Andrey_K » 02.04.2007 (Пн) 10:47

Хм, не знал что такая схема может работать в самой формуле (по сути в самой программе).... :shock:

Чудовище под кроватью
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 27.11.2006 (Пн) 14:46
Откуда: А из ника не ясно?

Сообщение Чудовище под кроватью » 02.04.2007 (Пн) 12:23

Andrey_K
А цикл тут зачем? Берешь строку:
Код: Выделить всё
Row(i)

увеличиваешь ее на несколько строк:
Код: Выделить всё
Row(i).Resize(19)

Удаляешь все 19:
Код: Выделить всё
Row(i).Resize(19).EntireRow.Delete

Т.е. все в одно действие и без цикла.
У-у-у!!

Andrey_K
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 12.10.2006 (Чт) 12:25

Сообщение Andrey_K » 02.04.2007 (Пн) 14:48

Row(i).Resize(19)

ошибку пишет: "Sub or Function not defined"

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 02.04.2007 (Пн) 16:41

букву s пропустили у RowS, т.е.

Код: Выделить всё
Rows(i).Resize(19).EntireRow.Delete


Вернуться в VBA

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

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

    TopList