Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.31;
Скачать: CL | DM;

Вниз

Обработка ошибок Excel из Delphi.   Найти похожие ветки 

 
Kiril   (2006-09-12 23:13) [0]

Имеем работоспособный макрос:
(предложен кусочек)
On Error Resume Next
   Err.Clear
   Cells.Find(What:=NomNumber, After:=ActiveCell, LookIn:=xlFormulas, _
       LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
       MatchCase:=False, SearchFormat:=False).Activate
   If Err.Number <> 0 Then
       GoTo Start
   End If

Как переложить в Delphi отслеживание ошибок VBA я не представляю, подскажите пожалуйста.

Заранее благодарен, Кирилл.


 
Kiril   (2006-09-12 23:20) [1]


>    Cells.Find(What:=NomNumber, After:=ActiveCell, LookIn:
> =xlFormulas, _
>        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:
> =xlNext, _
>        MatchCase:=False, SearchFormat:=False).Activate


Извините, у меня и поиск перенести в Делфи не получается чисто интуитивно. Подскажите где можно накопать какую либо документацию?


 
Kiril   (2006-09-13 00:47) [2]

Делаю так:

ExcelApplication.Workbooks[1].WorkSheets[1].Cells.Find["3"].Activate;

Пишет: Член группы не найден.


 
Сергей М. ©   (2006-09-13 10:22) [3]

Подсказка: Find - это функция, а не свойство.


 
umbra ©   (2006-09-13 11:51) [4]


> ExcelApplication.Workbooks[1].WorkSheets[1].Cells.Find["3"].
> Activate;
>
> Пишет: Член группы не найден.
>

метод Find возвращает диапазон, состоящий из одной ячейки, а вы указываете индекс, причем как строку. Ниже - пример, как можно искать ячейки.


function DoSomethingWithFound(range: variant, params: array of variant): integer;
var
 Match, FirstFound, PrevMatch: Variant;

begin
Result := 0;
Match := Unassigned;
Match :=range.Find(What:=params[1], Lookin:=params[2]);
if VarIsEmpty(Match) then
 exit
else
 Firstfound := Match.Address;
repeat
   Inc(Result);
   PrevMatch := match;
   //делаем что-то
   //с найденной ячейкой.
   match := Unassigned;
   match := range.FindNext(Prevmatch);
until (match.Address = firstfound) or VarIsEmpty(match);
Prevmatch := Unassigned;
FirstFound := Unassigned;
end;



 
Сергей М. ©   (2006-09-13 12:45) [5]


> umbra ©   (13.09.06 11:51) [4]


У автора, судя по коду, раннее связывание.


 
umbra ©   (2006-09-13 13:30) [6]

э-э-э, да, недоглядел. :( Но принцип остается тот же, только типы, возможно, надо приводить.



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

Текущий архив: 2009.05.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
15-1237982524
pavel_guzhanov
2009-03-25 15:02
2009.05.31
Вирус в банкоматах


2-1239895427
Igor2010
2009-04-16 19:23
2009.05.31
WordApplication1-компонент


3-1222062150
Юрий Катунов
2008-09-22 09:42
2009.05.31
Сортировка в DBGrid


8-1194522221
Alex_C
2007-11-08 14:43
2009.05.31
sndPlaySound и несколько звуковых карт


9-1179831261
Jkot
2007-05-22 14:54
2009.05.31
Луч и треугольник.