Вниз
Скачать: CL | DM;

Как вызвать метод Sort класса Range из процедуры D6?   Найти похожие ветки 

 
Дельфин   (2006-01-08 00:57) [0]

Господа!

Вот работающий вызов сортировки листа в VBA Excel:

Selection.Sort Key1:=Range(DayXStr + LimAreaT), Order1:=xlAscending, Key2:=Range("A2") _
, Order2:=xlAscending, Key3:=Range("B2"), Order3:=xlAscending, Header:= _
xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Имею:
XlApp : TExcelAppication;
WkBook : TExcelWorkBook;
WkSheet : TExcelWorkSheet;

Пожалуйста, напишите, как аналогично VB вызвать Sort из процедуры Delphi.
Начинаю так:
WkSheet.Range["A1","AI1"].Sort(..................
Что дальше?

Практически все параметры в списке можно понять по прямой аналогии с VB, кроме параметра "Type_:OleVariant" - в чем его смысл?

Ни в доках, ни в хелпе, ни в инете - ни теории, ни примера......

Спасибо за внимание.


 
Virgo_Style ©   (2006-01-08 09:38) [1]

когда мне было что-то неясно, я всегда писал EmptyParam. Иногда не работало, но работало - гораздо чаще 8-)

Вообще-то, это, скорее всего, тип данных - сортировать как строки, сортировать как числа и т.д. По идее, должен уметь определяться автоматически. Попробуй...


 
Дельфин   (2006-01-08 15:05) [2]

Virgo_Style

оно конечно...
EmptyParam, - я и сам завсегда пишу, когда неясно, что именно надо.
Но беда в том, что при заполненном списке параметров, где в соответствии с типами переменных прописано либо 0, либо EmptyParam - компиляция проходит, а исполнение слетает по ошибке "Метод Sort завершен неверно"!

В хелпе В6 есть Type_ для TWebBrowser - типа WideString (Indicates the type name of the contained document object.. - Из хелпа) В моем случае (учитывая, что OleVariant и WideString - близкие родственники) я не смог домыслить, что именно и в каком виде хочет D6 иметь на этом месте.

Три дня назад половину рабочего дня убил на метод Find - на место второго параметра ("After") писал адрес ячейки ("A2")... Пока не дошел в переборе вариантов до ExcelApplication1.ActiveCell - получал "неверное завершение метода Find"... Очень сильно подозреваю что-то похожее и сейчас.

Так вот неверное толкование параметра при отсутствии надежных доков и примеров - источник головной боли.
Потому и прошу - напишите за меня работающий вызов!..... У меня просто больше нет вариантов........


 
umbra ©   (2006-01-10 11:08) [3]

приведите для прояснения ситуации Ваш код на Делфи


 
Дельфин   (2006-01-11 00:24) [4]

umbra

Уважаемый umbra! Господа и коллеги!

Сегодня мне, наконец, удалось раскрутить сортировку листа Excel из Delphi.  Озабоченных проблемой отсылаю на форум, где проходило горячее обсуждение:

http://www.progz.ru/forum/viewtopic.php?t=21254.


> Практически все параметры в списке можно понять по прямой
> аналогии с VB, кроме параметра "Type_:OleVariant" - в чем
> его смысл?


Параметр Type_ - объявлен в группе констант XlSortType в Excel2000.

// Constants for enum XlSortType
type
 XlSortType = TOleEnum;
const
 xlSortLabels = $00000002;
 xlSortValues = $00000001;


Для меня эта тема закрыта. Спасибо всем, кто был со мной.


 
YurikGL ©   (2006-01-11 01:27) [5]

Если вдруг файла  Excel2000 не окажется, то можно воспользоваться способом описанным в

http://www.delphimaster.ru/articles/dbtoword/index.html

Если работать через CreateOleObject, то чтобы получить значение констант VisualBasic, которые Дельфи вообще говоря не понимает, надо внутри макроса написать MsgBox(нужная_константа). Тогда он покажет ее численное значение, их-то в Дельфи и использовать.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
4-1173526703
BOGa
2007-03-10 14:38
2007.09.02
Обмен данными между процессами ( WM_COPYDATA)


2-1186414603
wazaaa
2007-08-06 19:36
2007.09.02
Как спрятать уже открытое окно ?


4-1173440828
dzuev
2007-03-09 14:47
2007.09.02
usb - порт и принтер


15-1185785539
StriderMan
2007-07-30 12:52
2007.09.02
.NET vs Java


2-1186903598
Debug
2007-08-12 11:26
2007.09.02
Закрытие вкладки TPageControl




   Наверх