Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Выделение столбцов

3.8K
13 июля 2004 года
corvin
31 / / 04.07.2004
Имеется номер столбца, и требуется выделить и удалить все столбцы с этого номера и до последнего, т.е. до 256.
А команда colomns работает по видимому только с алфавитными индексами столбцов.
Вопрос: как найти решение?
459
13 июля 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by corvin
Имеется номер столбца, и требуется выделить и удалить все столбцы с этого номера и до последнего, т.е. до 256.
А команда colomns работает по видимому только с алфавитными индексами столбцов.
Вопрос: как найти решение?


Имеется номер столбца -NC
Range(Columns(NC), Columns(256)).Select
Selection.Delete (xlShiftToLeft)

305
13 июля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by gacol

Имеется номер столбца -NC
Range(Columns(NC), Columns(256)).Select
Selection.Delete (xlShiftToLeft)



А почему такое со сотроками не катит?
пишу:
Range(Rows(2), Rows(2)).Select
Selection.Delete Shift:=xlUp

459
13 июля 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by Kashuk


А почему такое со сотроками не катит?
пишу:
Range(Rows(2), Rows(2)).Select
Selection.Delete Shift:=xlUp


У меня твой пример прокатил.
У тебя ругается или молча саботирует?

305
13 июля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by gacol

У меня твой пример прокатил.
У тебя ругается или молча саботирует?


Ещё и как ругается!
Вот полный код:
'Удаляю все старые строки
'=====================================
Set PPWS = ThisWorkbook.Sheets(2)
i = 9
'=====================================
PPWS.Activate
While (Not IsEmpty(PPWS.Cells(i, 2)))
If (PPWS.Cells(i, 7) < ThisWorkbook.Sheets(5).Cells(12, 7)) Then
PPWS.Range(Rows(i), Rows(i)).Select
Selection.Delete Shift:=xlUp
End If
i = i + 1
Wend
MsgBox ("Готово!!!")

459
13 июля 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by Kashuk

Ещё и как ругается!
Вот полный код:
'Удаляю все старые строки
'=====================================
Set PPWS = ThisWorkbook.Sheets(2)
i = 9
'=====================================
PPWS.Activate
While (Not IsEmpty(PPWS.Cells(i, 2)))
If (PPWS.Cells(i, 7) < ThisWorkbook.Sheets(5).Cells(12, 7)) Then
PPWS.Range(Rows(i), Rows(i)).Select
Selection.Delete Shift:=xlUp
End If
i = i + 1
Wend
MsgBox ("Готово!!!")


У меня и это работает. Ну я только на двух листах, а не на 5-ти или сколько их у тебя.
Но, чтобы правильно стирало надо i увеличивать только, когда нет удаления. E.g.
If (PPWS.Cells(i, 7) < ThisWorkbook.Sheets(5).Cells(12, 7)) Then
PPWS.Range(Rows(i), Rows(i)).Select
Selection.Delete Shift:=xlUp
Else
i = i + 1
End If
Но, повторяю, у меня и твой пример в принципе работает. Если у тебя ругается, может пришлешь книжку? Покумекаю.

305
13 июля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by gacol

У меня и это работает. Ну я только на двух листах, а не на 5-ти или сколько их у тебя.
Но, чтобы правильно стирало надо i увеличивать только, когда нет удаления. E.g.
If (PPWS.Cells(i, 7) < ThisWorkbook.Sheets(5).Cells(12, 7)) Then
PPWS.Range(Rows(i), Rows(i)).Select
Selection.Delete Shift:=xlUp
Else
i = i + 1
End If
Но, повторяю, у меня и твой пример в принципе работает. Если у тебя ругается, может пришлешь книжку? Покумекаю.



А ты на каком екселе пробывал?
У меня 2000 офис, может оно из-за этого пенится.
Сегодня попробую дома под ХР, може что и выйдет.

305
13 июля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by gacol

У меня и это работает. Ну я только на двух листах, а не на 5-ти или сколько их у тебя.
Но, чтобы правильно стирало надо i увеличивать только, когда нет удаления. E.g.
If (PPWS.Cells(i, 7) < ThisWorkbook.Sheets(5).Cells(12, 7)) Then
PPWS.Range(Rows(i), Rows(i)).Select
Selection.Delete Shift:=xlUp
Else
i = i + 1
End If
Но, повторяю, у меня и твой пример в принципе работает. Если у тебя ругается, может пришлешь книжку? Покумекаю.



З.Ы. А за Else i = i + 1 спасибо, не заметил ;)

459
14 июля 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by Kashuk


А ты на каком екселе пробывал?
У меня 2000 офис, может оно из-за этого пенится.
Сегодня попробую дома под ХР, може что и выйдет.


У меня тоже MSO 2000.
Но меня терзают смутные воспоминания,что у меня года полтора назад были тоже какие-то заморочки с массовыми удалениями. Детали уже не вспомню. Вобщем, если хочешь, выкладывай свою книжку.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог