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

Вниз

Обработка ошибок 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 вся ветка

Форум: "Corba";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1239791422
FS
2009-04-15 14:30
2009.05.31
Оптимизация


2-1239804244
Xoluay
2009-04-15 18:04
2009.05.31
символьный массив


2-1240137953
HF-Trade
2009-04-19 14:45
2009.05.31
Файл занят другим процессом.


4-1190046757
Bora.ru
2007-09-17 20:32
2009.05.31
Снимок частично закрытого окна


15-1238504560
Городской Шаман
2009-03-31 17:02
2009.05.31
Похоже, старый подход к разработке игр скоро вымрет.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский