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

Вход

Регистрация

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

 

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

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

Excel 2007
Добрый день. С первого листа данные с помощью макроса копируются в таблицу на другом листе. На листе с таблицей есть макрос автосортировки, но он почему работает некорректно, в чем может проблема?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
[A1].CurrentRegion.Sort [A1], xlAscending, Header:=xlYes
End Sub
[/vba]
К сообщению приложен файл: avtosort-1-.xlsb(26.8 Kb)


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Понедельник, 18.02.2019, 23:21
 
Ответить
СообщениеДобрый день. С первого листа данные с помощью макроса копируются в таблицу на другом листе. На листе с таблицей есть макрос автосортировки, но он почему работает некорректно, в чем может проблема?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
[A1].CurrentRegion.Sort [A1], xlAscending, Header:=xlYes
End Sub
[/vba]

Автор - ASWP
Дата добавления - 18.02.2019 в 23:09
gling Дата: Понедельник, 18.02.2019, 23:21 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1925
Репутация: 480 ±
Замечаний: 0% ±

2010
Здравствуйте. Не понятно в чем проблема, всё отсортировано по порядку. Что не так? Что нужно сделать чтобы увидеть неправильную сортировку?


ЯД-41001506838083

Сообщение отредактировал gling - Понедельник, 18.02.2019, 23:22
 
Ответить
СообщениеЗдравствуйте. Не понятно в чем проблема, всё отсортировано по порядку. Что не так? Что нужно сделать чтобы увидеть неправильную сортировку?

Автор - gling
Дата добавления - 18.02.2019 в 23:21
ASWP Дата: Понедельник, 18.02.2019, 23:22 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 182
Репутация: 23 ±
Замечаний: 0% ±

Excel 2007
gling, Файл изменил, не тот сначала приложил.


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщениеgling, Файл изменил, не тот сначала приложил.

Автор - ASWP
Дата добавления - 18.02.2019 в 23:22
gling Дата: Понедельник, 18.02.2019, 23:24 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1925
Репутация: 480 ±
Замечаний: 0% ±

2010
У вас в столбце А и даты и текст. Измените формат столбца А на Общий и увидите. Выделить столбец А--Данные--Текст по столбцам--ОК=должно помочь.


ЯД-41001506838083

Сообщение отредактировал gling - Понедельник, 18.02.2019, 23:29
 
Ответить
СообщениеУ вас в столбце А и даты и текст. Измените формат столбца А на Общий и увидите. Выделить столбец А--Данные--Текст по столбцам--ОК=должно помочь.

Автор - gling
Дата добавления - 18.02.2019 в 23:24
ASWP Дата: Понедельник, 18.02.2019, 23:33 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 182
Репутация: 23 ±
Замечаний: 0% ±

Excel 2007
gling, Спасибо. Как я это не заметил


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщениеgling, Спасибо. Как я это не заметил

Автор - ASWP
Дата добавления - 18.02.2019 в 23:33
ASWP Дата: Вторник, 19.02.2019, 19:00 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 182
Репутация: 23 ±
Замечаний: 0% ±

Excel 2007
Нет, все таки проблема была в макросе. Значения даты воспринимались как обычные числа, и поэтому неправильно сортировались, при любом формате ячейке. В общем изменил макрос, теперь все работает как надо.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:E")) Is Nothing Then
    ActiveWorkbook.Worksheets("Таблица").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Таблица").Sort.SortFields.Add Key:=Range("A1") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек", DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Таблица").Sort
        .SetRange Range("A:E")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    End If
End Sub
[/vba]


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Вторник, 19.02.2019, 19:05
 
Ответить
СообщениеНет, все таки проблема была в макросе. Значения даты воспринимались как обычные числа, и поэтому неправильно сортировались, при любом формате ячейке. В общем изменил макрос, теперь все работает как надо.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:E")) Is Nothing Then
    ActiveWorkbook.Worksheets("Таблица").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Таблица").Sort.SortFields.Add Key:=Range("A1") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек", DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Таблица").Sort
        .SetRange Range("A:E")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    End If
End Sub
[/vba]

Автор - ASWP
Дата добавления - 19.02.2019 в 19:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Некорректно работает автосортировка при добавление данных (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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