Blueprism для сортировки Excel - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь отсортировать столбец в Excel с помощью Blueprism. Я улучшил Excel VBO следующим кодом

GetInstance(handle).Sort.SortFields.Add2 (Key:=Range(Range)) 

Код компилируется, но при его запуске я получаю следующую ошибку

Internal : Could not execute code stage because exception thrown by code stage: Exception from HRESULT: 0x800A03EC 

Ответы [ 2 ]

4 голосов
/ 07 февраля 2020

GetInstance(handle) возвращает только экземпляр Excel.Application, сопоставленный с этим handle. Excel.Application не имеет свойства Sort.

Используйте свойство экземпляра, например ActiveSheet, чтобы применить операцию к листу (который имеет свойство Sort):

GetInstance(handle).ActiveSheet.Sort.SortFields.Add2 (Key:=Range(Range)) 
0 голосов
/ 20 апреля 2020

Привет, Чтобы использовать функцию сортировки в Blue Prism, используйте следующий код на этапе кода:

Dim worksheet,Excel As Object

Dim rRng as Object

Dim Header1 as integer

try

Excel = GetWorkbook(handle,Nothing)

worksheet = GetWorkbook(handle,Nothing).ActiveSheet

rRng = worksheet.Range(Data_StartCell,Data_EndCell)

if HeaderPresent = true then

    Header1=1

else if HeaderPresent = false then

    Header1=2

end if

rRng.Sort(Key1:=worksheet.Range(Order_StartCell,Order_EndCell), Order1:=OrderType,Header:=Header1)

Success = true

catch e as Exception

Success = false

End try

Используемые входные переменные - дескриптор , Data_StartCell, Data_EndCell, Order_StartCell, Order_EndCell, OrderType, HeaderPresent

Выходные переменные - Успех

Предположим, вы хотите получить данные из столбца A1: E20 и вам нужно отсортировать столбец Только б Ниже приведены входные данные, которые вы можете использовать:

Data_StartCell - "A1"

Data_EndCell - "E20"

Order_StartCell - "B1"

Order_EndCell - "B20"

OrderType - 1 (это номер типа и 1 для Ascending и 2 для Descending)

HeaderPresent - Верно или неверно, в зависимости от того, есть у вас заголовки или нет

Надеюсь, решение подойдет вам.

...