Delphi excel поиск текста

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
uses
  ComObj;
 
//Очистка StringGrid. Здесь, прежде чем удалить строки, их следует очистить.
//Это связано с особенностями TStringGrid. При удалении, строки могут быть
//не удалены, а спрятаны. И при добавлении новых строк будут появляться ранее
//скрытые строки вместе с записанным в них текстом.
//Удобнее очищать таблицу по столбцам (так как, чаще всего, их меньше, чем строк).
//Но в данном случае, чтобы не затрагивать шапку таблицы, очистка выполнена по строкам.
procedure ClearSg(aSg : TStringGrid);
var
  i : Integer;
begin
  for i := aSg.FixedRows to aSg.RowCount - 1 do aSg.Rows[i].Clear;
  aSg.RowCount := aSg.FixedRows + 1;
end;
 
//Оформление шапки таблицы.
procedure TForm1.FormCreate(Sender: TObject);
var
  Sg : TStringGrid;
begin
  Sg := StringGrid1;
  Sg.Cells[0, 0] := '№';
  Sg.Cells[1, 0] := '№ строки';
  Sg.Cells[2, 0] := 'Фамилия';
  Sg.Cells[3, 0] := 'Имя';
  Sg.Cells[4, 0] := 'Отчество';
  Sg.Cells[5, 0] := 'Свойство';
end;
 
//Поиск.
procedure TForm1.Button1Click(Sender: TObject);
const
  //Группа констант XlFindLookIn.
  //Искать только в комментариях, прикреплённых к ячейкам.
  xlComments = -4144;
  //Искать только в тексте формул.
  xlFormulas = -4123;
  //Искать только в значениях ячеек.
  xlValues = -4163;
 
  //Группа констант XlLookAt.
  //Искомый текст может быть частью строки или всей строкой.
  xlPart = 2;
  //Искомый текст может быть только всей строкой.
  xlWhole = 1;
 
  //Группа констант XlSearchOrder.
  xlByColumns = 2; //Искать по столбцам.
  xlByRows = 1; //Искать по строкам.
var
  exApp, exBook, exSheet, exRng, exCell : Variant;
  sTemplate, sAddress : String;
  i, Row : Integer;
  Sg : TStringGrid;
  Od : TOpenDialog;
begin
  Od := OpenDialog1; //OpenDialog1 уже должен быть на форме.
  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath( ParamStr(0) ) + 'files';
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    MessageBox(0, 'Файл с указанным именем не найден. Действие отменено.',
      'Внимание!', MB_OK + MB_ICONWARNING + MB_APPLMODAL);
    Exit;
  end;
 
  sTemplate := Edit1.Text;
  if STemplate = '' then begin
    MessageBox(0, 'Не задан искомый текст. Действие отменено.',
      'Внимание!', MB_OK + MB_ICONWARNING + MB_APPLMODAL);
    Exit;
  end;
 
  exApp := CreateOleObject('Excel.Application');
  exApp.Visible := True;
  exBook := exApp.WorkBooks.Open(FileName:=Od.FileName);
  //Первый лист в рабочей книге.
  exSheet := exBook.WorkSheets[1];
  //Используемый на листе диапазон.
  exRng := exSheet.UsedRange;
  //Номер нижней строки в используемом диапазоне.
  Row := exRng.Row + exRng.Rows.Count - 1;
  //Определяем диапазон поиска - это второй лист на листе в пределах
  //используемого диапазона.
  exRng := exSheet.Range[exSheet.Cells[3, 2], exSheet.Cells[Row, 2]];
 
  //Поиск ячееек.
  Sg := StringGrid1;
  ClearSg(Sg);
  Row := Sg.FixedRows - 1;
  i := 0;
  VarClear(exCell);
  //LookIn:=xlValues - ищем только в значениях ячеек.
  //LookAt:=xlPart - искомый тект может быть частью строки или всей строкой.
  //MatchCase:=False - поиск не зависит от регистра букв.
  exCell := exRng.Find(What:=STemplate, LookIn:=xlValues, LookAt:=xlPart,
    SearchOrder:=xlByColumns, MatchCase:=False);
  if not VarIsClear(exCell) then begin
    sAddress := exCell.Address;
    repeat
      inc(i);
      Inc(Row);
      //Если требуется, добавляем строку в StringGrid.
      if Row = Sg.RowCount then Sg.RowCount := Succ(Row);
      //Запись в StringGrid сведений о найденном тексте.
      Sg.Cells[0, Row] := IntToStr(i);
      Sg.Cells[1, Row] := IntToStr(exCell.Row);
      Sg.Cells[2, Row] := exCell.Text;
      Sg.Cells[3, Row] := exCell.Offset[0, 1].Text;
      Sg.Cells[4, Row] := exCell.Offset[0, 2].Text;
      Sg.Cells[5, Row] := exCell.Offset[0, 3].Text;
      exCell := exRng.FindNext(After:=exCell);
    until exCell.Address = sAddress;
  end;
 
  if i = 0 then
    ShowMessage('Ни одного соответствия не найдено.');
 
  //Если требуется, закрываем рабочую книгу.
  //exBook.Close;
  //Если требуется, выходим из Excel.
  //exApp.Quit;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  ClearSg(StringGrid1);
end;


Форум программистов Vingrad

Модераторы: MetalFan

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Организация поиска текста в файле Excel 

:(

   

Опции темы

Dukalys
Дата 6.9.2010, 20:50 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.9.2010

Репутация: нет
Всего: нет

День добрый. Подскажите каким инструментом Delphi можно организовать поиск в Excel (2007), желательно с примером.

Поиск должен осуществляться ТОЛЬКО по столбцу A Excel, при этом, при нахождении нужного, необходимо записывать данные текущей строки из ячеек B, C в переменные/массив (неважно).
Результатом поиска является МНОЖЕСТВО строк. Хорошо бы если результатом поиска являлись бы строки или конкретные ячейки A101 …

P.S. Перерыл кучу материала ( в том числе книг), нашёл следующее — 
Ссылка1 — поиск определяет только найдено (true) или ненайдено (false) — а хочется номер ячейки ( лучше строки) — чегото материального.
Ссылка2 — поиск данных на листе, в конце интересный repeat until которого я непонимаю, может через него можно выйти на нужное мне.
Ссылка3 — тоже поиск данных, который резко оканчивается Find().Activate; что этот активейт, куда он что возвращает, для меня загадка.

На вашем форуме почитал темы интересные про работу с Excel, но тем с подробным решением данной задачи так и не нашёл.

Это сообщение отредактировал(а) Dukalys — 6.9.2010, 20:55

PM MAIL   Вверх
Данкинг
Дата 6.9.2010, 21:17 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

Ну, проходи циклом по листу и ищи, что нужно. Способ медленный, но верный.

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
okkonst
Дата 6.9.2010, 22:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 33
Регистрация: 5.9.2010
Где: Воронеж

Репутация: нет
Всего: 1

а еще лучше — запиши макрос, который бы делал то, что тебе нужно (имеется ввиду — нажми «запись макроса» и соверши нужные действия), а сгенеренный код транслируй в дельфи. Там же отличный поиск есть…

PM MAIL   Вверх
Данкинг
Дата 6.9.2010, 23:15 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

Цитата(okkonst @ 6.9.2010,  23:34)
а еще лучше — запиши макрос, который бы делал то, что тебе нужно (имеется ввиду — нажми «запись макроса» и соверши нужные действия), а сгенеренный код транслируй в дельфи. Там же отличный поиск есть…

Согласен, это ещё лучше: я сиё предположил, но не стал пока озвучивать.

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Dukalys
Дата 7.9.2010, 06:32 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.9.2010

Репутация: нет
Всего: нет

Ребят спасиб. С макросами я ещё не работал, если честно то даже ммм не представляю что придётся делать. можете это описать как-то. как придётся транслировать …

А что касается цикла с проверкой каждой ячейки совпадает ли значение (true) то это наверное долго — в файле Excel 200 000 строк. и перебирать в цикле и обращаться к каждой ячейке это жёстко.

P.S. Возможно ли все данные их Excel как-то по-умному рассовать по массивам в Дельфи ? (получается 3 столбца(массива) of String по 200 000) так чтобы вначале программы это заняло секунд 15-20 или меньше. Мне кажется что потом в итоге это съэкономит кучу времени и сил. спасибо за ответы.

Это сообщение отредактировал(а) Dukalys — 7.9.2010, 06:44

PM MAIL   Вверх
Albinos_x
Дата 7.9.2010, 14:12 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Evil Skynet
****

Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108

Цитата(Dukalys @  6.9.2010,  20:50 Найти цитируемый пост)
Ссылка3 — тоже поиск данных, который резко оканчивается Find().Activate; что этот активейт, куда он что возвращает, для меня загадка.

выделяется найденная ячейка

координаты можно получить дав команды в стиле:

Код

column:= ExcelWorksheet1.Columns.Column; 
row:=ExcelWorksheet1.Rows.Row;

———————

«Кто владеет информацией, тот владеет миром»    
Уинстон Черчилль

PM MAIL ICQ   Вверх
Dukalys
Дата 7.9.2010, 21:14 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.9.2010

Репутация: нет
Всего: нет

Попробовал …
Итого — не работает.
подробнее:

Выдержки из первоисточника (книги):

1. «Если задана область ячеек и получена ссылка на неё, то количество столбцов будет определяться свойством Count коллекции Columns объекта Range, а количество строк — свойством Count коллекции Rows объекта Range». Доступ ко всем строкам и столбцам листа рабочей книги предоставляют коллекции Rows и Columns объекта ActiveSheet — активного листа рабочей книги.

2. «Мы определились, что ячейка всегда определяется объектами Range или Cells»

Такая многозначность + отсутствие в Delphi предввода методов, свойств (Excel. пусто) для работы с Excel меня загоняет в тупик.

Код

FindRange := WB.ActiveSheet.Cells.Find(What:=Edit2.Text).Activate; //находит и выделяет

Form1.Edit3.Text := IntToStr(WB.ActiveSheet.Rows.Row); //ролсрой
Form1.Edit4.Text := IntToStr(WB.ActiveSheet.Columns.Column);

Form1.Edit5.Text := IntToStr(WB.ActiveSheet.Cells.Row);
Form1.Edit6.Text := IntToStr(WB.ActiveSheet.Cells.Column);

Во всех эдитах значение = 1   (реальное расположение ПРАВИЛЬНО НАЙДЕННОЙ И ВЫДЕЛЕННОЙ ячейки = ‘B3’=(2,3))

Методом подбора — получить какое либо свойство из FindRange (типа Row) так и не получилось.

Выкладываю пример программы — теста, с которой работаю. за основу взята криво написанная (в том числе и мной) программа из нета и неудачно адаптирована под поиск координат ячейки.

прога прикреплена.

P.S. есть у когонить идеи по этому поводу ??? Я в нете коечто нарыл — Ссылко Похоже от туда можно коечто выдернуть, через 2 часика проверю и отпишусь.

Это сообщение отредактировал(а) Dukalys — 8.9.2010, 13:28

Присоединённый файл ( Кол-во скачиваний: 8 )

Присоединённый файл
 pr138_1.zip 394,04 Kb

PM MAIL   Вверх
Albinos_x
Дата 8.9.2010, 13:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Evil Skynet
****

Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108

сделай так, это самый простой вариант:

Код
...
 Form1.Edit3.Text := E.ActiveCell.Row;
 Form1.Edit4.Text := E.ActiveCell.Column;
...

———————

«Кто владеет информацией, тот владеет миром»    
Уинстон Черчилль

PM MAIL ICQ   Вверх
Dukalys
Дата 8.9.2010, 14:36 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.9.2010

Репутация: нет
Всего: нет

Цитата

 Form1.Edit3.Text := E.ActiveCell.Row;
 Form1.Edit4.Text := E.ActiveCell.Column;

Оргомное спасибо код работает !!!

Ребят а вот смотрите заметил какую особенность при выполнении метода «Find» для Cells и для Range

Код
 FindRange := WB.ActiveSheet.Cells.Find(What:=Edit2.Text).Activate; 

Выделяет правильную ячейку 3,2

Код
 FindRange := WB.ActiveSheet.Range[Edit1.Text].Find(What:=Edit2.Text).Activate; 

Выделяет 4 ячейку вместо третьей и по выше приведённых свойствам возвращает 4,2

ну наверно можно просто -1 делать от значения Row ? или это особенность какаято ?

Это сообщение отредактировал(а) Dukalys — 8.9.2010, 14:59

PM MAIL   Вверх
Albinos_x
Дата 9.9.2010, 13:33 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Evil Skynet
****

Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108

Цитата(Dukalys @  8.9.2010,  14:36 Найти цитируемый пост)
ну наверно можно просто -1 делать от значения Row ? или это особенность какаято ?

Это если запускать в любой последовательности???

———————

«Кто владеет информацией, тот владеет миром»    
Уинстон Черчилль

PM MAIL ICQ   Вверх
Dukalys
Дата 9.9.2010, 18:29 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.9.2010

Репутация: нет
Всего: нет

Несовсем догоняю что имеете ввиду здесь про последовательность (начало поиска — с начала документа или конца ?). результат поиска с начала документа — искомой строки, ссылается на последующую строку, вродебы всё время …

PM MAIL   Вверх
Albinos_x
Дата 13.9.2010, 08:01 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Evil Skynet
****

Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108

хм… у тебя в приложенном проекте, если не ошибаюсь, было 2 кнопки, где реализовано 2-мя способами поиск, вот я и спрашиваю в какой последовательности запускаешь…

———————

«Кто владеет информацией, тот владеет миром»    
Уинстон Черчилль

PM MAIL ICQ   Вверх
Deeptown12
Дата 26.4.2017, 13:12 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2008

Репутация: нет
Всего: нет

Код

Function FindValueInCell(ExcelWS : TExcelWorksheet; What : string; var CellsFound : TList<TPositionCell>) : Boolean;
var
Found : ExcelRange;
Addr, Addr2 : String;
Position : TPositionCell;
begin
 Result := False;
 //Выполняем поиск в пределах используемого дипазона.
 //Поиск. MatchCase:=False - поиск не зависит от регистра букв.
 // xlPart - по сопадению
 // xlWhole - точное
 Found := ExcelWS.Cells.Find(What, EmptyParam, xlValues, xlWhole, xlByRows, xlNext, False, EmptyParam);
 if Assigned(Found) then
 begin
   Result := True;
   Addr   := Found.Address[True, True, xlA1, EmptyParam, EmptyParam];
   Position.Col  := Found.Column;
   Position.Row  := Found.Row;
   CellsFound.Add(Position);
   repeat
       Found := ExcelWS.Cells.FindNext(Found);
       if Assigned(Found) then
       begin
          Addr2  := Found.Address[True, True, xlA1, EmptyParam, EmptyParam];
          // адрес совпал (круг завершен)
          if SameText(Addr, Addr2) then Break;

          Position.Col  := Found.Column;
          Position.Row  := Found.Row;
          CellsFound.Add(Position);
       end;
   // выход если не найдено
   until not Assigned(Found)
 end;
end;

Procedure Find;
var
 ListCellFound : TList<TPositionCell>;
 I, Row, Col : Integer;
begin
 ListCellFound := TList<TPositionCell>.Create;
 if FindValueInCell(ExcelWS, 'Что искать', ListCellFound) then
 begin
    for I := 0 to ListCellFound.Count-1 do
    begin
        Col := ListCellFound.Items[I].Col;
        Row := ListCellFound.Items[I].Row;
    end;
 end;
 if Assigned(ListCellFound) then FreeAndNil(ListCellFound);
end;

PM MAIL   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Delphi: ActiveX/СОМ/CORBA»

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »

I’ve written the following procedure in my project to replace tags with values in Excel from Delphi program. It replaces all tags on all sheets

OutF — is a Excel Ole object, Slabel — is a tag to be replaced, SValue — is a value to replace the tag.

For example

OutF := CreateOleObject('Excel.Application' );
......

ExcelOutStr(OutF,'<MY_USER_NAME>','Value for MY User Name');

And here is the procedure:

procedure ExcelOutStr(OutF:Variant;SLabel,SValue:String);
var i,j:integer;
begin
  try
    OutF.DisplayAlerts := false;

    //To place a string with linebreaks into one Cell
    SValue:=StringReplace(SValue,#13#10,#10,[rfReplaceAll, rfIgnoreCase]);

    for j:=1 to OutF.Sheets.Count do
    begin
       OutF.WorkSheets[j].Select;

       if length(SValue)<250 then
       begin
              OutF.Cells.Replace(What:=Slabel, Replacement:=SValue, LookAt:=2,SearchOrder:=1, MatchCase:=False);
       end
       else
       begin
              //Excel .replace fails on string with length >250 so replace it in few steps
              i:=1;
              while i<=length(SValue) do
              begin
                 if i+200-1<length(SValue) then
                    OutF.Cells.Replace(What:=Slabel, Replacement:=Copy(SValue,i,200)+SLabel, LookAt:=2,SearchOrder:=1, MatchCase:=False)
                 else
                    OutF.Cells.Replace(What:=Slabel, Replacement:=Copy(SValue,i,200), LookAt:=2,SearchOrder:=1, MatchCase:=False);
                 i:=i+200;
              end;
       end;
    end;
    OutF.WorkSheets[1].Select;
  except
      on E : Exception do ShowMessage('Error: Lablel ['+SLabel+'] '+E.Message);
  end;

end;

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    user posted image

    Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

    Соблюдайте общие правила форума

    Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
    1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
    2. Как «свернуть» программу в трей.
    3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
    4. Как запустить программу/файл? (и дождаться ее завершения)
    5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры — внедрение в удаленное адресное прстранство)
    … (продолжение следует) …


    Внимание:
    Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
    Повторная попытка — 60 дней. Последующие попытки — бан.
    Мат в разделе — бан на три месяца…


    Полезные ссылки:
    user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


    Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

    >
    Поиск в Excel нужной строки

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему

      


    Сообщ.
    #1

    ,
    05.11.05, 13:11

      Люди подскажите код для поиска строки в Excel. Допустим у меня строка OrgName содержит имя организации и я ее сравниваю со строками в Excel и если совпадение есть, то нужно показать эту строку в Excel. :wall:


      vet



      Сообщ.
      #2

      ,
      05.11.05, 15:12

        Full Member

        ***

        Рейтинг (т): 16

        Берем переменную Excel из предыдущего твоего топика:

        ExpandedWrap disabled

           try

            Excel.Cells.Find(OrgName).Select;

           except

           end;

        Если ячейка с текстом OrgName найдена, то она будет выделена, если нет — возникнет исключение, поэтому заключаем поиск в try … except.
        Вообще, у Find еще много необязательных параметров, если не хватит задания только текста:

        ExpandedWrap disabled

          Cells.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, SearchFormat)


        nqwe



        Сообщ.
        #3

        ,
        01.04.08, 02:29

          А как можно найти значение по пересечению двух строки и столбца и потом записатьв Edit ?
          пробую SearchOrder не получаеться может я не правильно делаю ?
          SearchOrder(‘начало’, ‘момент’, Edit1.text)

          Сообщение отредактировано: nqwe — 01.04.08, 02:30

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • Delphi: Система, Windows API
          • Следующая тема

          Рейтинг@Mail.ru

          [ Script execution time: 0,0287 ]   [ 16 queries used ]   [ Generated: 13.04.23, 22:37 GMT ]  

          Like this post? Please share to your friends:
        • Delphi excel поиск по ячейкам
        • Delphi excel открыть один лист
        • Delphi excel объединенные ячейки в excel
        • Delphi excel не найдено
        • Delphi excel не закрывать