2013-09-15 3 views
0

Я использовал магнитофон для создания кода для автофильтра. Это работает в первый раз, но в следующий раз он выдает ошибку «объектная переменная или блокирующая переменная не задана». Как это разрешить?Проблемы с автофильтром VBA

Sheets(SheetNum + 1).Range("A7").Activate 
Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select 
    '.Selection.AutoFilter 
    ' Next line gives error 
    'ActiveWorkbook.Worksheets("Youth - PP").AutoFilter.Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Youth - PP").AutoFilter.Sort.SortFields.Add Key:= _ 
     Range("K7:K1705"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ 
     :=xlSortNormal 
    With ActiveWorkbook.Worksheets("Youth - PP").AutoFilter.Sort 
     .Header = xlYes 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 

Я использую Excel 2007 с Windows XP. Спасибо за помощь.

ответ

1

Удаления автофильтра первым должен это исправить:

ActiveWorkbook.Worksheets("Youth - PP").AutoFilterMode = False 

Я бы рекомендовал пересмотреть свой код, чтобы избежать использования .Activate, .Select, Activecell, ActiveWorkbook. Определите объекты и установите их.

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