Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 18:26   #1
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию Удаление строк по дате, ранее заданной

Странно ведет себя макрос.


Sub vvv()
Dim sh As Worksheet
Dim iLastrow As Long
Dim i As Long
Set sh = Sheets("Финансы")
iLastrow = sh.Cells(Rows.Count, 1).End(xlUp).Row
For i = iLastrow To 12 Step -1
If sh.Cells(i, 1) = [c3] Then
ElseIf sh.Cells(i, 1) < [c3] Then
sh.Cells(i, 1).EntireRow.Delete (xlShiftUp)
sh.Cells(i - 1, 1).EntireRow.Delete (xlShiftUp)
End If
Next i
End Sub

Иногда удаляет строки с датой в ячейках столбца А меньших или равных дате, заданной в ячейке С3, иногда только меньшие, а иногда промежуточные. Где я накосячил? (файл приложил на всякий случай).
Вложения
Тип файла: rar Финансы.rar (24.1 Кб, 15 просмотров)
strannick вне форума Ответить с цитированием
Старый 20.02.2012, 18:45   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а что надо-то удалять?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.02.2012, 19:08   #3
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Удалять строки, если в ячейках столбца А начиная с А11, стоят даты, меньшие или равные дате в ячейке С3.
strannick вне форума Ответить с цитированием
Старый 20.02.2012, 19:15   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а так?
Код:
Sub vvv()
  Dim sh As Worksheet, i As Long
  Set sh = Sheets("Финансы")
  For i = sh.Cells(Rows.Count, 1).End(xlUp).Row To 11 Step -1
    If sh.Cells(i, 1) <= sh.[c3] Then sh.Cells(i, 1).EntireRow.Delete (xlShiftUp)
  Next i
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.02.2012, 19:24   #5
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Спасибо, Игорь. Вроде работает. У меня был и такой вариант, и несколько других (с автофильтром), но почему-то то срабатывает, то нет. Сейчас погоняю, там посмотрим.
strannick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление ранее созданого меню Ципихович Эндрю Microsoft Office Word 9 09.01.2012 20:56
удаление из исходной строки заданной конфигурации символов Petruha-nsk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 22 11.10.2010 15:53
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
по заданной дате вычислить какой день недели. Pascal. Яська Помощь студентам 4 28.01.2009 23:51