|
Сортировка в Excel из 1С |
☑ |
0
Victor111
02.04.15
✎
17:08
|
Есть макрос нужно адаптировать под 1с, сразу отсекается запуск готового макроса средствами 1С, так как макрос будет создаваться програмно в 1С.
Например : FileFormat:=xlExcel8 в 1с будет выглядеть Fileformat = -4143 ;
Не пойму как выразить :
SortOn:=xlSortOnValues
Order:=xlAscending
DataOption:=xlSortNormal
|
|
1
Victor111
02.04.15
✎
17:09
|
Сам макрос
Sub Для1С()
'
' Для1С Макрос
'
'
Rows("2:4").Select
Range("AO2").Activate
Selection.AutoFilter
Application.AddCustomList ListArray:=Array("52", "62")
ActiveWorkbook.Worksheets("Входящий файл").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Входящий файл").AutoFilter.Sort.SortFields.Add Key _
:=Range("B5:B115"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:="52,62", DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Входящий файл").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
|
|
2
b_ru
02.04.15
✎
17:14
|
открыть макрос в экселе, поставить точку останова, запустить, в отладчике глянуть значения всех интересующих констант.
|
|
3
ДенисЧ
02.04.15
✎
17:16
|
Const xlSortOnValues = 0
Const xlAscending = 1
|
|
4
ДенисЧ
02.04.15
✎
17:16
|
Const xlSortNormal = 0
|
|
5
Victor111
02.04.15
✎
18:14
|
а как правильно вот этот кусок кода записать:
With ActiveWorkbook.Worksheets("Входящий Файл").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
я пробую вот так:
Header = 1;
MatchCase = Ложь;
Orientation = 1;
SortMethod = 1;
Apply = 1;
Excel.ActiveWorkbook.Worksheets("Входящий Файл").AutoFilter.Sort(Header,MatchCase,Orientation,SortMethod,Apply);
ошипка
{ОбщийМодуль.Сервер.Модуль(1293)}: Ошибка при вызове метода контекста (Sort)
Excel.ActiveWorkbook.Worksheets("Входящий Файл").AutoFilter.Sort(Header,MatchCase,Orientation,SortMethod,Apply);
по причине:
Метод не найден
|
|
6
MiniMuk
02.04.15
✎
19:44
|
With ActiveWorkbook.Worksheets("Входящий Файл").AutoFilter.Sort
это вроде блок внутри которого он является действующим, как то так
тоесть должно быть тото вроде
Excel.ActiveWorkbook.Worksheets("Входящий Файл").AutoFilter.Sort.Header= 1;
Excel.ActiveWorkbook.Worksheets("Входящий Файл").AutoFilter.Sort.MatchCase = Ложь;
...
|
|
7
Victor111
02.04.15
✎
21:48
|
(6) Все отлично заработало, спасибо!
|
|