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

Вход

Регистрация

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

 

= Мир MS Excel/Сортировка данных по значению ячейки столбца - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сортировка данных по значению ячейки столбца
vlavaden Дата: Пятница, 15.06.2018, 18:28 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день. Макрос сортирует данные по значению столбца "В" и копирует на соответствующие листы, только вот первая строка попадает на оба листа. Возможно ли это исправить? Кроме того макрос работает правильно, только если предварительно выделить исходные данные. Это разрешимо как-то? Спасибо.
К сообщению приложен файл: primsort.xlsm (21.6 Kb)
 
Ответить
СообщениеДобрый день. Макрос сортирует данные по значению столбца "В" и копирует на соответствующие листы, только вот первая строка попадает на оба листа. Возможно ли это исправить? Кроме того макрос работает правильно, только если предварительно выделить исходные данные. Это разрешимо как-то? Спасибо.

Автор - vlavaden
Дата добавления - 15.06.2018 в 18:28
_Boroda_ Дата: Пятница, 15.06.2018, 18:50 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16887
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Правильно первая строка попадает - это шапка для фильтра получается, она не фильтруется
Уберите Селекты - не будет зависеть от выделения
Если выриантов только два (или заранее известное небольшое количество), то вот так можно
[vba]
Код
Sub sortpc()
    Dim ar(1 To 2)
    Application.ScreenUpdating = 0
    ar(1) = "dvs"
    ar(2) = "des"
    Range("A1").EntireRow.Insert
    r1_ = Cells(Rows.Count, 1).End(3).Row
    For i = 1 To UBound(ar)
        Range("A1:K" & r1_).AutoFilter Field:=2, Criteria1:="=*" & ar(i)
        With Sheets(ar(i))
            .UsedRange.Clear
            Range("A2:K" & r1_).Copy .Range("A1")
        End With
    Next i
    Range("A1").EntireRow.Delete
    Application.ScreenUpdating = 1
    MsgBox "Данные перенесены"
End Sub
[/vba]
Если больше или произвольно, то сначала нужно получить массив ar уникальных по столбцу В, а потом все остальное. И проверку на наличие нужного листа еще заодно делать нужно.
Но Вы сначала с этим разберитесь

* Файл перевложил - забыл кнопке макрос назначить
К сообщению приложен файл: primsort_1.xlsm (23.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПравильно первая строка попадает - это шапка для фильтра получается, она не фильтруется
Уберите Селекты - не будет зависеть от выделения
Если выриантов только два (или заранее известное небольшое количество), то вот так можно
[vba]
Код
Sub sortpc()
    Dim ar(1 To 2)
    Application.ScreenUpdating = 0
    ar(1) = "dvs"
    ar(2) = "des"
    Range("A1").EntireRow.Insert
    r1_ = Cells(Rows.Count, 1).End(3).Row
    For i = 1 To UBound(ar)
        Range("A1:K" & r1_).AutoFilter Field:=2, Criteria1:="=*" & ar(i)
        With Sheets(ar(i))
            .UsedRange.Clear
            Range("A2:K" & r1_).Copy .Range("A1")
        End With
    Next i
    Range("A1").EntireRow.Delete
    Application.ScreenUpdating = 1
    MsgBox "Данные перенесены"
End Sub
[/vba]
Если больше или произвольно, то сначала нужно получить массив ar уникальных по столбцу В, а потом все остальное. И проверку на наличие нужного листа еще заодно делать нужно.
Но Вы сначала с этим разберитесь

* Файл перевложил - забыл кнопке макрос назначить

Автор - _Boroda_
Дата добавления - 15.06.2018 в 18:50
vlavaden Дата: Пятница, 15.06.2018, 19:16 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 76
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Спасибо, буду разбираться.
 
Ответить
Сообщение_Boroda_, Спасибо, буду разбираться.

Автор - vlavaden
Дата добавления - 15.06.2018 в 19:16
  • Страница 1 из 1
  • 1
Поиск:

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