Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос не выполняет удаление строк - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос не выполняет удаление строк (Макросы/Sub)
Макрос не выполняет удаление строк
monstr_ork Дата: Пятница, 09.03.2018, 09:58 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Помогите пожалуйста. Есть таблица, в которой нужно удалить сроки если в столбце, к примеру 4 стоит статус "Закрыто". Нашел для этого несколько вариантов:

Первый макрос

[vba]
Код
Sub Del_SubStr()
    Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
    Dim lCol As Long 'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim lMet As Long
    Dim arr
    sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "Запрос параметра", "")
    If sSubStr = "" Then lMet = 0 Else lMet = 1
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1))
    If lCol = 0 Then Exit Sub
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    arr = Cells(1, lCol).Resize(lLastRow).Value
    Application.ScreenUpdating = 0
    Dim rr As Range
    For li = 1 To lLastRow
        If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then
            If rr Is Nothing Then
                Set rr = Cells(li, 1)
            Else
                Set rr = Union(rr, Cells(li, 1))
            End If
        End If
    Next li
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub
[/vba]

Второй макрос
[vba]
Код
Sub УдалениеЗакрыто1()

On Error Resume Next

    With [a1].CurrentRegion
        .AutoFilter 4, "Закрыт"
        .Offset(1).SpecialCells(12).EntireRow.Delete
        .AutoFilter
    End With
End Sub
[/vba]

Первый работает через масив, а второй через автофильтр.
Первый макрос выдает в файле ошибку "Run time error 1004; метод Delete из класса Range завершен неверно". А через автофильтр он не удаляет строки, он их выводит, но не удаляет, помогите пожалуйста.

P.S. и почему у меня на форуме текст в кучу. при предварительном просмотре все нормально


Сообщение отредактировал monstr_ork - Пятница, 09.03.2018, 10:45
 
Ответить
СообщениеДобрый день!
Помогите пожалуйста. Есть таблица, в которой нужно удалить сроки если в столбце, к примеру 4 стоит статус "Закрыто". Нашел для этого несколько вариантов:

Первый макрос

[vba]
Код
Sub Del_SubStr()
    Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
    Dim lCol As Long 'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim lMet As Long
    Dim arr
    sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "Запрос параметра", "")
    If sSubStr = "" Then lMet = 0 Else lMet = 1
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1))
    If lCol = 0 Then Exit Sub
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    arr = Cells(1, lCol).Resize(lLastRow).Value
    Application.ScreenUpdating = 0
    Dim rr As Range
    For li = 1 To lLastRow
        If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then
            If rr Is Nothing Then
                Set rr = Cells(li, 1)
            Else
                Set rr = Union(rr, Cells(li, 1))
            End If
        End If
    Next li
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub
[/vba]

Второй макрос
[vba]
Код
Sub УдалениеЗакрыто1()

On Error Resume Next

    With [a1].CurrentRegion
        .AutoFilter 4, "Закрыт"
        .Offset(1).SpecialCells(12).EntireRow.Delete
        .AutoFilter
    End With
End Sub
[/vba]

Первый работает через масив, а второй через автофильтр.
Первый макрос выдает в файле ошибку "Run time error 1004; метод Delete из класса Range завершен неверно". А через автофильтр он не удаляет строки, он их выводит, но не удаляет, помогите пожалуйста.

P.S. и почему у меня на форуме текст в кучу. при предварительном просмотре все нормально

Автор - monstr_ork
Дата добавления - 09.03.2018 в 09:58
китин Дата: Пятница, 09.03.2018, 10:33 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4889
Репутация: 782 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
текст в кучу

не те теги используете надо # а не fx
И лучше приложить файл с ошибкой


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение
текст в кучу

не те теги используете надо # а не fx
И лучше приложить файл с ошибкой

Автор - китин
Дата добавления - 09.03.2018 в 10:33
Karataev Дата: Пятница, 09.03.2018, 10:34 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1236
Репутация: 470 ±
Замечаний: 0% ±

Excel


Киви-кошелек: 9166309108
Яндекс-деньги: 410014131888288


Сообщение отредактировал Karataev - Пятница, 09.03.2018, 10:35
 
Ответить
Сообщение

Автор - Karataev
Дата добавления - 09.03.2018 в 10:34
monstr_ork Дата: Пятница, 09.03.2018, 10:47 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Karataev, вы мне показали готовое решение? Если да, то в чем была ошибка, потому как на домашнем ПК он выполнял макрос, а на рабочем нет
 
Ответить
СообщениеKarataev, вы мне показали готовое решение? Если да, то в чем была ошибка, потому как на домашнем ПК он выполнял макрос, а на рабочем нет

Автор - monstr_ork
Дата добавления - 09.03.2018 в 10:47
Karataev Дата: Пятница, 09.03.2018, 10:48 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1236
Репутация: 470 ±
Замечаний: 0% ±

Excel
Да, это готовое решение.
Я не стал вникать в Ваш макрос, а сделал свой на основе Вашего первого макроса.


Киви-кошелек: 9166309108
Яндекс-деньги: 410014131888288


Сообщение отредактировал Karataev - Пятница, 09.03.2018, 10:49
 
Ответить
СообщениеДа, это готовое решение.
Я не стал вникать в Ваш макрос, а сделал свой на основе Вашего первого макроса.

Автор - Karataev
Дата добавления - 09.03.2018 в 10:48
monstr_ork Дата: Пятница, 09.03.2018, 11:05 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Karataev, очень жаль, хотелось бы разобраться в чем проблема....
 
Ответить
СообщениеKarataev, очень жаль, хотелось бы разобраться в чем проблема....

Автор - monstr_ork
Дата добавления - 09.03.2018 в 11:05
monstr_ork Дата: Понедельник, 12.03.2018, 21:33 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Karataev, макрос не работает, возникает та же ошибка.
Форумчане, может быть у вас есть идеи что это за ошибка?


Сообщение отредактировал monstr_ork - Понедельник, 12.03.2018, 21:33
 
Ответить
СообщениеKarataev, макрос не работает, возникает та же ошибка.
Форумчане, может быть у вас есть идеи что это за ошибка?

Автор - monstr_ork
Дата добавления - 12.03.2018 в 21:33
Karataev Дата: Понедельник, 12.03.2018, 21:36 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1236
Репутация: 470 ±
Замечаний: 0% ±

Excel
Сделайте два скриншота:
1) скрин сообщения с ошибкой
2) после того, как появится сообщение с ошибкой щелкните кнопку Debug, отобразится желтая строка, сделайте скрин желтой строки

Если есть возможность, выложите файл, с которым проблема.


Киви-кошелек: 9166309108
Яндекс-деньги: 410014131888288
 
Ответить
СообщениеСделайте два скриншота:
1) скрин сообщения с ошибкой
2) после того, как появится сообщение с ошибкой щелкните кнопку Debug, отобразится желтая строка, сделайте скрин желтой строки

Если есть возможность, выложите файл, с которым проблема.

Автор - Karataev
Дата добавления - 12.03.2018 в 21:36
Hugo Дата: Понедельник, 12.03.2018, 22:47 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2801
Репутация: 633 ±
Замечаний: 0% ±

Проблема может быть банально в защите листа например... Без файла говорить не о чем.


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069
 
Ответить
СообщениеПроблема может быть банально в защите листа например... Без файла говорить не о чем.

Автор - Hugo
Дата добавления - 12.03.2018 в 22:47
_Igor_61 Дата: Вторник, 13.03.2018, 22:09 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 274
Репутация: 47 ±
Замечаний: 20% ±

Excel 2007
на домашнем ПК он выполнял макрос, а на рабочем нет

Я не стал вникать в Ваш макрос, а сделал свой

Karataev, макрос не работает, возникает та же ошибка.

Так может проблема не в макросе, а в рабочем компьютере? :)
 
Ответить
Сообщение
на домашнем ПК он выполнял макрос, а на рабочем нет

Я не стал вникать в Ваш макрос, а сделал свой

Karataev, макрос не работает, возникает та же ошибка.

Так может проблема не в макросе, а в рабочем компьютере? :)

Автор - _Igor_61
Дата добавления - 13.03.2018 в 22:09
monstr_ork Дата: Среда, 14.03.2018, 17:04 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Igor_61, Может быть, но думаю проблема в этой ошибке. ЧТо она моет значить. Если я правильно понял, то в классе Range нельзя использовать действие удаление?
 
Ответить
Сообщение_Igor_61, Может быть, но думаю проблема в этой ошибке. ЧТо она моет значить. Если я правильно понял, то в классе Range нельзя использовать действие удаление?

Автор - monstr_ork
Дата добавления - 14.03.2018 в 17:04
sboy Дата: Среда, 14.03.2018, 17:21 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 1872
Репутация: 552 ±
Замечаний: 0% ±

Excel 2010
[offtop]- Ты суслика видишь?
- Нет
- И я не вижу, а он есть!


Сообщение отредактировал sboy - Среда, 14.03.2018, 17:25
 
Ответить
Сообщение[offtop]- Ты суслика видишь?
- Нет
- И я не вижу, а он есть!

Автор - sboy
Дата добавления - 14.03.2018 в 17:21
Mark1976 Дата: Среда, 14.03.2018, 23:08 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 462
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Karataev, спасибо за макрос. Очень нужная вещь в работе !
 
Ответить
СообщениеKarataev, спасибо за макрос. Очень нужная вещь в работе !

Автор - Mark1976
Дата добавления - 14.03.2018 в 23:08
monstr_ork Дата: Четверг, 15.03.2018, 18:58 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Товарищи, макрос не работает на любом файле, даже на вновь созданном.
Я хочу попробовать через автофильтр решить данную проблему. Подскажите что тут можно дописать, чтобы строчки удались, т.к. данный макрос только их выводит. Я пробовал через выделение видимой области после автофильтра, но столкнулся с тем, что в случае когда нет в таблице искомого значения, то он у меня всю таблицу удаляет. Помогите пожалуйста

[vba]
Код
Sub УдалениеЗакрыто1()

On Error Resume Next

With [a1].CurrentRegion
.AutoFilter 4, "Закрыт"
.Offset(1).SpecialCells(12).EntireRow.Delete
.AutoFilter
End With

End Sub
[/vba]


Сообщение отредактировал monstr_ork - Четверг, 15.03.2018, 18:59
 
Ответить
СообщениеТоварищи, макрос не работает на любом файле, даже на вновь созданном.
Я хочу попробовать через автофильтр решить данную проблему. Подскажите что тут можно дописать, чтобы строчки удались, т.к. данный макрос только их выводит. Я пробовал через выделение видимой области после автофильтра, но столкнулся с тем, что в случае когда нет в таблице искомого значения, то он у меня всю таблицу удаляет. Помогите пожалуйста

[vba]
Код
Sub УдалениеЗакрыто1()

On Error Resume Next

With [a1].CurrentRegion
.AutoFilter 4, "Закрыт"
.Offset(1).SpecialCells(12).EntireRow.Delete
.AutoFilter
End With

End Sub
[/vba]

Автор - monstr_ork
Дата добавления - 15.03.2018 в 18:58
RAN Дата: Пятница, 16.03.2018, 13:03 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4766
Репутация: 955 ±
Замечаний: 0% ±

2010
[offtop]У меня не работает телевизор.
Подскажите, что нужно дописать в телепрограмму, чтобы он заработал?[/offtop]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[offtop]У меня не работает телевизор.
Подскажите, что нужно дописать в телепрограмму, чтобы он заработал?[/offtop]

Автор - RAN
Дата добавления - 16.03.2018 в 13:03
monstr_ork Дата: Пятница, 16.03.2018, 17:36 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
RAN, [offtop]у меня к тебе вопрос, а ты во все темы новичков заходишь и пишешь такие примеры:
-у меня не работает машина , помогите мне напитать карбюратор.
Мне кажется было бы логично, если тебе что-то не понятно с начало прочитать ВСЮ тему и хотя бы на один вопрос ответить, раз уж ты разбираешь.
[/offtop]


Сообщение отредактировал monstr_ork - Пятница, 16.03.2018, 18:00
 
Ответить
СообщениеRAN, [offtop]у меня к тебе вопрос, а ты во все темы новичков заходишь и пишешь такие примеры:
-у меня не работает машина , помогите мне напитать карбюратор.
Мне кажется было бы логично, если тебе что-то не понятно с начало прочитать ВСЮ тему и хотя бы на один вопрос ответить, раз уж ты разбираешь.
[/offtop]

Автор - monstr_ork
Дата добавления - 16.03.2018 в 17:36
Pelena Дата: Пятница, 16.03.2018, 18:53 | Сообщение № 17
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12761
Репутация: 2810 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
monstr_ork, Вам как минимум в трёх постах написали, что без файла можно только гадать, почему не работает макрос.
Попробую ещё раз: в соответствии с Правилами форума приложите файл с примером (и макросами, которые не работают)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщениеmonstr_ork, Вам как минимум в трёх постах написали, что без файла можно только гадать, почему не работает макрос.
Попробую ещё раз: в соответствии с Правилами форума приложите файл с примером (и макросами, которые не работают)

Автор - Pelena
Дата добавления - 16.03.2018 в 18:53
RAN Дата: Суббота, 17.03.2018, 08:11 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4766
Репутация: 955 ±
Замечаний: 0% ±

2010
Лен зачем файл?
Karataev, вы мне показали готовое решение? Если да, то в чем была ошибка, потому как на домашнем ПК он выполнял макрос, а на рабочем нет

Так может проблема не в макросе, а в рабочем компьютере?

_Igor_61, Может быть, но думаю проблема в этой ошибке.

Подскажите что тут можно дописать, чтобы строчки удались, т.к. данный макрос только их выводит.

Может, стоит задуматься?
И да, макрос из № 14 прекрасно работает.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЛен зачем файл?
Karataev, вы мне показали готовое решение? Если да, то в чем была ошибка, потому как на домашнем ПК он выполнял макрос, а на рабочем нет

Так может проблема не в макросе, а в рабочем компьютере?

_Igor_61, Может быть, но думаю проблема в этой ошибке.

Подскажите что тут можно дописать, чтобы строчки удались, т.к. данный макрос только их выводит.

Может, стоит задуматься?
И да, макрос из № 14 прекрасно работает.

Автор - RAN
Дата добавления - 17.03.2018 в 08:11
monstr_ork Дата: Суббота, 17.03.2018, 14:32 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, RAN, в смысле почему? Я написал почему, только катаев сразу написал, что не стал разбираться, а стольные игнорят этот вопрос. Ошибка "Run time error 1004; метод Delete из класса Range завершен неверно", что это за ошибка? Так то эти макросы из шапки тоже на домашнем ПК работают.


Сообщение отредактировал monstr_ork - Суббота, 17.03.2018, 15:07
 
Ответить
СообщениеPelena, RAN, в смысле почему? Я написал почему, только катаев сразу написал, что не стал разбираться, а стольные игнорят этот вопрос. Ошибка "Run time error 1004; метод Delete из класса Range завершен неверно", что это за ошибка? Так то эти макросы из шапки тоже на домашнем ПК работают.

Автор - monstr_ork
Дата добавления - 17.03.2018 в 14:32
monstr_ork Дата: Среда, 11.04.2018, 22:49 | Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Товарищи, подскажите в чем ошибка и почему макрос не удаляет строчки.
Во вложении файл, в котором возникает ошибка
К сообщению приложен файл: 6918101.xlsm(21.3 Kb)
 
Ответить
СообщениеТоварищи, подскажите в чем ошибка и почему макрос не удаляет строчки.
Во вложении файл, в котором возникает ошибка

Автор - monstr_ork
Дата добавления - 11.04.2018 в 22:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос не выполняет удаление строк (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!