
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.5] |
![]() |
|
![]() |
|
|
Всем доброго времени суток
![]() Есть такая задача: Нужно программным способом организовать поиск в ячейках excel документа на наличие "коментария". Если ячейка с "комментарием" найдена, то: a) получить текст "комментария"; b) получить координаты ячейки; Прошу помогите, очень наболевший вопрос. Заранее бесконечно благодарен ![]() |
Сообщ.
#2
,
|
|
|
Если умеешь работать с Excel через OLE-автоматизацию, то запиши в Excele макрос, проделав при этом поиск вручную, через Ctrl-F. Исходный текст этого макроса повтори в Delphi-программе. Плюс см. хелп по Visual Basic for Applications (вроде так), эта справка по умолчанию вместе с MS Office не ставится, но можно доустановить.
|
Сообщ.
#3
,
|
|
|
Макросы буду исключать... Вы как то писали:
Цитата У меня была задача, для решения которой написал макросы в Excel. Позже обнаружилось, что антивирусы (в моем случае Kaspersky) могут блокировать выполнение макросов. Сначала долго удивлялся, почему не работает ![]() Вообщем случилось мне на это попасть... ![]() Топик: CheckBox в MS-Word Спасибо за участие, проблему решил =) ![]() ![]() procedure TForm1.Button2Click(Sender: TObject); type ExcelVars_=Record Comm_Count_ : Integer; // кол-во комментариев в ячейках; pos_comment_String: String; // сохраняем содержимое комм. ячейки; pos_comment_positN: String; // сохраняем позицию; end; // type var Excel : Variant; MainData_: ExcelVars_; begin Excel := CreateOleObject('Excel.Application.9'); Excel . Application.EnableEvents:= false; Excel . Visible := True; Excel . Workbooks.Open('x:\мои документы\книга1.xls'); MainData_.Comm_Count_:=Excel.ActiveSheet.Comments.Count; MainData_.pos_comment_String:=Excel.ActiveSheet.Comments[MainData_.Comm_Count_].text; MainData_.pos_comment_positN:=Excel.ActiveSheet.Comments[MainData_.Comm_Count_].parent.address; Memo1.Lines.Add(' Кол-во комментов на листе: '+IntToStr(MainData_.Comm_Count_)); Memo1.Lines.Add(' Текст последнего коммента: '+MainData_.pos_comment_String); Memo1.Lines.Add('Позиция последнего коммента: '+MainData_.pos_comment_positN); end; // procedure |