У меня есть формула массива на листе «Сведения о доступе сотрудника».(Значения находятся в столбцах от A до D, а формула массива расширяется до строки 1530).
Я хочу скопировать значения на другой лист с именем «Организация доступа сотрудника» и вставить в качестве значений, а затем отсортировать по возрастанию в соответствии со столбцом CУ меня есть код, который работает и выглядит следующим образом: -
Private Sub CommandButton1_Click()
ActiveWorkbook.RefreshAll
Sheets("Employee Access Arranged").Range("A2:D" & Sheets("Employee
Access Arranged").Range("A" & Rows.Count).End(xlUp).Row).ClearContents
With Sheets("Employee Access Detail")
.Range(.Range("A4"), .Cells(.Rows.Count, "D").End(xlUp)).Copy
End With
With Sheets("Employee Access Arranged")
.Cells(.Rows.Count, "A").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Range("C2").CurrentRegion.Select
Selection.Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Worksheets("Employee Access Arranged").Activate
Range("A2").Activate
End Sub
Теперь, чтобы просто вставить эти значения и упорядочить этот код по возрастанию, требуется несколько минут, и так как это должно быть сделано несколько раз,не эффективен.
Буду признателен, если есть способ сделать этот код более эффективным.Я считаю, что проблема заключается в том, как я копирую ценности.
Спасибо за вашу помощь заранее.Ценить это.