Я запускаю сценарий VBA из файла Excel, который открывает другой файл, манипулирует данными и некоторыми диаграммами, а затем сохраняет их. Все работает отлично, за исключением случаев, когда я пытаюсь отсортировать данные. Когда я дохожу до строки .SortFields.Add Key:=Range("J3:J11")...
, я получаю сообщение об ошибке
Run-time error '-2147417851 (80010105)':
Automation error
The server threw an exception
Я уверен, что это как-то связано с тем, как я ссылаюсь на объект Excel, но я перепробовал все и не нашел решения. Код сортировки был заимствован из макрорекордера и изменен.
Private Sub button1_Click()
Dim path As String
Dim exl As Excel.Application
path = ActiveWorkbook.path & "\"
Set exl = CreateObject("Excel.Application")
With exl
.Workbooks.Open path & "bin\Integrated UPSIDE with Summary.xlsm"
<...other code...>
With .Worksheets("Summary").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("J3:J11") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SetRange Range("C2:P11")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
<...other code...>
.Workbooks.Close
End With
exl.QUIT
End Sub
Любые предложения БОЛЬШИМ образом оценены! Спасибо
Range("J3:J11")
на.Range("J3:J11")
и повторите попытку. Аналогично дляRange("C2:P11")
:) - person Siddharth Rout   schedule 30.03.2012