Выделение столбцов
А команда colomns работает по видимому только с алфавитными индексами столбцов.
Вопрос: как найти решение?
Имеется номер столбца, и требуется выделить и удалить все столбцы с этого номера и до последнего, т.е. до 256.
А команда colomns работает по видимому только с алфавитными индексами столбцов.
Вопрос: как найти решение?
Имеется номер столбца -NC
Range(Columns(NC), Columns(256)).Select
Selection.Delete (xlShiftToLeft)
Имеется номер столбца -NC
Range(Columns(NC), Columns(256)).Select
Selection.Delete (xlShiftToLeft)
А почему такое со сотроками не катит?
пишу:
Range(Rows(2), Rows(2)).Select
Selection.Delete Shift:=xlUp
А почему такое со сотроками не катит?
пишу:
Range(Rows(2), Rows(2)).Select
Selection.Delete Shift:=xlUp
У меня твой пример прокатил.
У тебя ругается или молча саботирует?
У меня твой пример прокатил.
У тебя ругается или молча саботирует?
Ещё и как ругается!
Вот полный код:
'Удаляю все старые строки
'=====================================
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 ("Готово!!!")
Ещё и как ругается!
Вот полный код:
'Удаляю все старые строки
'=====================================
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
Но, повторяю, у меня и твой пример в принципе работает. Если у тебя ругается, может пришлешь книжку? Покумекаю.
У меня и это работает. Ну я только на двух листах, а не на 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 офис, может оно из-за этого пенится.
Сегодня попробую дома под ХР, може что и выйдет.
У меня и это работает. Ну я только на двух листах, а не на 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 спасибо, не заметил ;)
А ты на каком екселе пробывал?
У меня 2000 офис, может оно из-за этого пенится.
Сегодня попробую дома под ХР, може что и выйдет.
У меня тоже MSO 2000.
Но меня терзают смутные воспоминания,что у меня года полтора назад были тоже какие-то заморочки с массовыми удалениями. Детали уже не вспомню. Вобщем, если хочешь, выкладывай свою книжку.