2014-09-30 8 views
-2

Я пытаюсь использовать этот код для сортировки таблицы в excel, но я не уверен, как разместить предопределенный диапазон в свойстве .SetRange. Я хочу использовать переменную rng1Row, указанную выше. Любая помощь будет принята с благодарностью.сортировать макрос в Excel

N = Cells(Rows.Count, "A").End(xlUp).Row 
Set rng1 = wb1.Sheets("SourceData").Cells.Range("A2:A" & N) 
Set rng1Row = rng1.EntireRow 

wb1.Worksheets("SourceData").Sort.SortFields.Clear 
wb1.Worksheets("SourceData").Sort.SortFields.Add Key:=wb1.Sheets("SourceData").Cells.Range("A2:A" & N), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
    xlSortNormal 
With wb1.Worksheets("SourceData").Sort 
    .SetRange 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 
+0

Какова ваша цель? Вы просто пытаетесь сортировать столбец A? – DyRuss

ответ

0

Here is the documentation: выражение .SetRange (Rng)

SetRange Range(rng1Row) (при условии, rng1Row является диапазон)

Однако, давайте посмотрим на первую часть вашего кода -

N = Cells(Rows.Count, "A").End(xlUp).Row 
Set rng1 = wb1.Sheets("SourceData").Cells.Range("A2:A" & N) 
Set rng1Row = rng1.EntireRow 

Вы пытаетесь получить строку столбца. rng1Row = (Range("A:A").EntireRow). Это недействительное использование свойства.

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