Поиск Из Lotus В Excel

#1
Добрый день!
Для более оперативной организации импорта данных из книги Excel в БД Lotus решил воспользоваться функцией VBA find:

Set view = db.GetView( "viewByPersonFullName" )
Set PersonDoc = view.GetFirstDocument

Do While Not (PersonDoc Is Nothing)

tempPersonID = PersonDoc.GetItemValue("fldPersonId")(0)
'Set tempFindPerson = ExcelWorkSheet.Columns(6).Find(tempPersonID, xlValues, xlPrevious, xlByRows)
Set tempFindPerson = ExcelWorkSheet.Columns(6).Find(tempPersonID, "", -4123, 1, 1, 1, False, False)


If tempFindPerson Is Nothing Then
Call PersonDoc.ReplaceItemValue("fldPersonStatus", "Уволен")
End If

Set PersonDoc = view.GetNextDocument(PersonDoc)

Loop

Во время выполнения агента, появляется ошибка "automation object error" на строке поиска Set tempFindPerson =, не могу разобраться почему, толи неправильно параметры передаю, толи ещё что то.
В чём может быть причина ошибки?

Спасибо!
 

susinmn

Well-Known Member
16.10.2007
529
8
33
Саратов
#2
Может Find\FindNext подойдет?

Код:
Set xlR=CreateObject("Excel.Application")
Call xlR.Workbooks.Open(filename,0,0)
Set xlRWbk = xlR.ActiveSheet	



tmpLastRow=0
tmpLastColumn=0
tmpText=Format(xlRWbk.Range("A1").Value,"0;0%") 
If Instr(tmpText,"408")>0 Then
tmpRow=1
tmpColumn=1
sus=sus+HowManyAccounts(tmpText)
xlR.Cells.Find("408").Select
Else
xlR.Cells.Find("408").Select					
tmpRow=xlR.Selection.Row
tmpColumn=xlR.Selection.Column
tmpText=Format(xlRWbk.Cells(tmpRow,tmpColumn).Value,"0;0%") 
End If

xlR.Cells.FindNext(xlR.Selection).Select
tmpRow=xlR.Selection.Row
tmpColumn=xlR.Selection.Column
 
04.07.2012
5
0
#4
На будущее:
В данном случае агент выдает ошибку automation object error если искомое выражение не найдено.
Для проверки пробуем за место tempPersonID подставить к-нибудь значение, к-ое точно имеется в документе Excel, тогда функция не выдаст ошибку.
Поэтому перед функцией ставим обработчик ошибок, н-р:
on error resume next
а дальше проверка правильная.