2014-01-16 4 views
0

Это работало в течение самого долгого времени, но я думаю, что я мог бы что-то сделать, чтобы испортить его. Я проверил его и перепроверял, и он больше не сортирует мои данные. Код работает в других листах, но я не могу понять, почему он не работает над этим текущим.Автоматическая сортировка с Excel - VBA

Это дает мне ошибку «1004»: метод сортировки класса Range не удалось

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 

'Don't run this code unless a value is last entered in column "H" 
    If Not Target.Column = "8" Then Exit Sub 

    'Prevents endless loops 
    Application.EnableEvents = False 



    'Assumptions 
    '1. Data only housed in Columns H 
    '2. The first row contains headings or labels 
    '3 Column "H" is used as the sort criteria 

     Me.UsedRange.Sort Key1:=Columns("H"), Order1:=xlAscending, _ 
     Header:=xlYes, OrderCustom:=1, MatchCase:=False, _ 
     Orientation:=xlTopToBottom 

    Application.EnableEvents = True 
    On Error Resume Next 
    ActiveWorkbook.Save 



End Sub 
+0

Ваш код работает, если я попробую. Все ли данные в столбце H действительны? Не перепутаны вычисления, которые нельзя сортировать или что-то еще? –

+0

вот что я говорю. На самом деле у меня есть код в другом разделе, и он отлично работает. единственное, что у меня есть в «Н», - это имя технологов типа «Джо» или «Фил». Это просто не имеет смысла для меня. –

ответ

0

Это, кажется, работает для меня:

Private Sub Worksheet_Change(ByVal Target As Range) 
'Don't run this code unless a value is last entered in column "H" 
    If Not Target.Column = 8 Then Exit Sub 
    MsgBox " " 
    'Prevents endless loops 
    Application.EnableEvents = False 



    'Assumptions 
    '1. Data only housed in Columns H 
    '2. The first row contains headings or labels 
    '3 Column "H" is used as the sort criteria 

     ActiveSheet.UsedRange.Sort Key1:=Columns("H"), Order1:=xlAscending, _ 
     Header:=xlYes, OrderCustom:=1, MatchCase:=False, _ 
     Orientation:=xlTopToBottom 

    Application.EnableEvents = True 
    ActiveWorkbook.Save 

End Sub 

Убедитесь, что вы «сортные» данные в столбце H

+0

Единственное, что у меня есть в H - это имя. Ничего, что нельзя сортировать. –

+0

Он также выделяет этот раздел кода. Me.UsedRange.Sort Key1: = Колонки ("H"), Заказ1: = xlAscending, _ Заголовок: = xlYes, OrderCustom: = 1, MatchCase: = False, _ Ориентация: = xlTopToBottom –

+0

Заголовок должен быть в ** H1 **. Вам также нужны некоторые данные в ячейках ** ниже H1 ** –

Смежные вопросы