Поиск Из Lotus В Excel

Тема в разделе "Lotus - Программирование", создана пользователем valdymar, 13 сен 2012.

  1. valdymar

    valdymar New Member

    Регистрация:
    13 сен 2012
    Сообщения:
    3
    Симпатии:
    0
    Добрый день!
    Для более оперативной организации импорта данных из книги 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 =, не могу разобраться почему, толи неправильно параметры передаю, толи ещё что то.
    В чём может быть причина ошибки?

    Спасибо!
     
  2. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Может Find\FindNext подойдет?

    Код (Text):
    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
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.075
    Симпатии:
    300
  4. kutzhanov

    kutzhanov Member

    Регистрация:
    4 июл 2012
    Сообщения:
    5
    Симпатии:
    0
    На будущее:
    В данном случае агент выдает ошибку automation object error если искомое выражение не найдено.
    Для проверки пробуем за место tempPersonID подставить к-нибудь значение, к-ое точно имеется в документе Excel, тогда функция не выдаст ошибку.
    Поэтому перед функцией ставим обработчик ошибок, н-р:
    on error resume next
    а дальше проверка правильная.
     
Загрузка...

Поделиться этой страницей