Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];

Вниз

Excel   Найти похожие ветки 

 
Igor_thief   (2002-11-10 21:33) [0]

Дорогие Мастера. Как программно можно найти нужную ячейку в таблице Excel’я не перебирая при этом все ячейки в цикле (вызвать стандартный диалог поиска строки в Excel не показывая его пользователю)? Мне для решения задачи надо определить номер рядка в котором находится указанная строка. Excel Xp, Windows Xp.


 
vidiv   (2002-11-11 02:33) [1]

Я знаю, но я не Мастер. :(


 
Рыжик   (2002-11-11 08:41) [2]

Range:=Workbook.Cells.Find("tra-la-la",EmptyParam, EmptyParam, ...)


 
Igor_thief   (2002-11-11 16:35) [3]

Рыжик © (11.11.02 08:41)
Спасибо. Я проверю.


 
Igor_thief   (2002-11-11 20:08) [4]

Рыжик © (11.11.02 08:41)
Я попробовал, но этот вариант не работает. Выдается ошибка конвертации типов. Ты не мог бы привести примерчик по-подробние. Написать маленькую прогу которая реализовует сабж? Зарание благодарен. Я при работе с Excel использую компоненты ExcelApplication, ExcelWorkBook... с вкладки Servers.

vidiv © (11.11.02 02:33)
Раскажи.


 
Рыжик   (2002-11-12 11:25) [5]

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
ISheet:_Worksheet;
IR,FoundRange:Excel2000.Range;
begin
IDispatch(ISheet) := ExcelApplication1.ActiveWorkbook.Worksheets.Item["Sheet1"];
IDispatch(IR) := Olevariant(ISheet).Cells;
IDispatch(FoundRange) := OleVariant(IR).Find(What:="tra-la-la", LookIn := xlValues, LookAt := xlWhole);
if FoundRange<>nil then
begin
i:=FoundRange.Row;
ShowMessage(IntToStr(i));
end
else ShowMessage("Ничего не найдено");
end;


 
Igor_thief   (2002-11-15 20:10) [6]

Рыжик © (12.11.02 11:25)
Спасибочки, я попробую.


 
Igor_thief   (2002-11-15 20:30) [7]

Office Xp, Windows Xp.
Список ошибок которые выдает компилятор D7:

Build
[Error] Unit1.pas(44): Undeclared identifier: "Excel2000" //IR,FoundRange:Excel2000.Range;
[Error] Unit1.pas(44): "," or ":" expected but ";" found
[Error] Unit1.pas(45): Type expected but "BEGIN" found
[Error] Unit1.pas(49): Operator not applicable to this operand type //if FoundRange<>nil then
[Error] Unit1.pas(51): Missing operator or semicolon //i:=FoundRange.Row;
[Fatal Error] Project1.dpr(5): Could not compile used unit "Unit1.pas"


 
Рыжик   (2002-11-19 08:56) [8]

Excel2000 - это у меня. Надо написать свою версию. Если вы используете компоненты с закладки Servers, то посмотрите, какой модуль там указывается в uses и замените Excel2000 в приведённом коде на нужный. Хотя можно и вообще это дело опустить и написать так: IR,FoundRange:Range; Тогда получите что-то типа "warning: symbol "Range" is specific to a platform". Но работать всё-равно должно.


 
Igor_thief   (2002-11-19 13:01) [9]

Я проверю!


 
Igor_thief   (2002-12-07 13:13) [10]

Не работает!


 
Neox   (2002-12-07 13:25) [11]

Долго, однако, проверял :)


 
Igor_thief   (2002-12-07 21:49) [12]

To Neox ©
Да я сразу проверил, но в форум долго не писал. Я писал сразу на мыло к Рыжик.



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

Форум: "Потрепаться";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
8-86043
ArhAngel2
2002-09-07 21:22
2002.12.26
Библиотека dglut.pas


1-85999
Alpine
2002-12-16 12:50
2002.12.26
Как запретить своему приложению не запускаться больше одного раза


14-86085
spROOT13
2002-12-08 17:48
2002.12.26
Архивы форумов


14-86098
romychk
2002-12-05 12:55
2002.12.26
Socket - все в одном


1-85890
Matolch
2002-12-16 20:54
2002.12.26
DBCtrlCrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский