Страницы: 1
RSS
Вставка строк срабатывает некорректно на отфильтрованном диапазоне
 
Доброго времени суток, Планетяне!

Вопрос в названии: вставка строк некорректно срабатывает (в примере должен вставить 3, а вставил по 2, а иногда где-то 3, а где-то 2), если поставить фильтр (по 1 или 2 в примере) и применить её для всех видимых ячеек
При этом пошаговый дэбаг пишет всё нормально, то есть, если руками делать тоже самое, то всё должно быть нормально
Также, если выделять без фильтра рандомные ячейки и применять макрос, то всё норм
Вспомогательные функции работают корректно

Вот схожая (но про другое) моя тема: Умные таблицы. Вставить строки
Коды
Изменено: Jack Famous - 29.04.2020 20:16:28
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
и что не корректного? все сработало так, как написано в макросе
макрос обычно делает то, что в нем написано, а не то, что вы думали он будет делать
поэтому, для начала: что за задачу пытаемся решить?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко: и что не корректного? все сработало так, как написано в макросе
а вы попробуйте запустить и сравнить, прежде чем говорить  - в который раз уже…
Макрос должен вставить по 3 строки (например), а вставляет по 2, а иногда последние 2 раза - по три строки, а остальные - по 2.
А если без фильтра, то нормально
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
так все-таки, что за задачу решаем?
условия вашей задачи обьяснить можете?
понимаю что это ваша задача и она совершенно очевидна вам
но я это все вижу первый раз, мне можете обьяснить, что за задачу решаете, или процитируйте ту часть ваших ссообщений, где написаны условия этой задачи, может я невнимательно читал и пропустил их
Изменено: Ігор Гончаренко - 29.04.2020 20:30:44
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко: что за задачу решаете
вставка N строк перед или после каждой выделенной ячейки
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
Sub InsSameRows()
  Dim hm&, aft&, i&, r&, rg As Range, rw As Range, a
  hm = [d1]:  If hm = 0 Then Exit Sub
  aft = IIf([g1], 0, 1): Set rg = Selection
  Set rg = rg.SpecialCells(xlCellTypeVisible)
  ReDim a(1 To rg.Count): i = 1
  For Each rw In rg: a(i) = rw.Row: i = i + 1: Next
  For r = UBound(a) To 1 Step -1
    For i = 1 To hm
      Rows(a(r) + aft).Insert xlShiftDown
    Next
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, ваш работает (вставка по одной строке) - спасибо, но мне хотелось бы разобраться со своим, а именно - почему при фильтре нельзя корректно вставлять по несколько строк
Изменено: Jack Famous - 29.04.2020 21:32:17
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Попробовал вставлять блоками через Resize.EntireRow - не помогло
Получается, что работает только приём "в лоб", а именно вставлять по одной строке N раз — жаль
Кто знает, как можно корректно вставлять строки блоками при включённом фильтре - поделитесь  ;)
Рабочая версия
Изменено: Jack Famous - 30.04.2020 09:31:54
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Снять фильтрацию, вставить блоками, вернуть фильтрацию
 
Цитата
vikttur: Снять фильтрацию, вставить блоками, вернуть фильтрацию
очевидно  :D
Однако проблем с запоминанием фильтра может быть куда больше - пусть тогда уж пока так
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх