Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как заставить работать Excel со сылками через OLE. / 1 сообщений из 1, страница 1 из 1
29.10.2008, 12:46
    #35622625
BliTZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить работать Excel со сылками через OLE.
Со ссылками в excel раньше не работал, да и с VBA тоже, так что если что-нибудь неправильно опишу, простите.

Суть проблемы:
Есть Excel-файл COQ.xls, который связан с ASTMLib.xla файлом(а в нем горы VBA-кода).
Насколько я понял связь осуществляется макросом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub Auto_Open()
    Dim myAddinLoc As String
    Dim wbMyAddin As AddIn
    Dim strUtilLink As String
    Dim i As Long
    Dim j As Integer
    Dim alinks
    ChDir "c:\tables"
        myAddinLoc = "c:\tables\ASTMLib.xla"
        On Error Resume Next
        Set wbMyAddin = Workbooks(AddIns("ASTMLib").Name)
        lastError = Err
        On Error GoTo  0 
        If lastError <>  0  Then
            Application.AddIns.Add(myAddinLoc).Installed = True
        End If
        alinks = ActiveWorkbook.LinkSources(xlExcelLinks)
        If Not IsEmpty(alinks) Then
            For i =  1  To UBound(alinks)
                If InStr( 1 , alinks(i), "dri_dir", vbTextCompare) Then
                    ActiveWorkbook.ChangeLink alinks(i), "c:\tables\dri_dir.xls", xlLinkTypeExcelLinks
                End If
            Next i
        End If

End Sub
Так-же есть еще несколько файлов неясного назначения, но не в них суть.

Так вот, если просто открывать этот файл(COQ.xls) из среды Excel, то все в порядке и связи создаются автоматически, но если попытаться открыть его с помощью OLE то не происходит связи с ASTMLib.xla.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
OLEObject 	lo_Excel;
lo_Excel = CREATE OLEObject
If (lo_Excel.ConnectToNewObject("excel.application") <>  0 ) Then
	messagebox(" ","Exel не найден")
	return
End if;
lo_Excel.Visible = true;
lo_Excel.Workbooks.open('C:\Tables\COQ.xls',  2 )
lo_Excel.Application.Run('Auto_Open')
lo_Excel.ActiveWorkBook.WorkSheets[ 1 ].Cells[ 12 , 5 ].value =  38850 . 580 ;
lo_Excel.ActiveWorkBook.WorkSheets[ 1 ].Cells[ 19 , 6 ].value =  0 . 9881 
messagebox(" ", string(lo_Excel.ActiveWorkBook.WorkSheets[ 1 ].Cells[ 11 , 5 ]) ) ////вот здесь, 
            //если бы подгружалась ASTMLib.xla, то должен был бы выдаваться ответ.
lo_Excel.ActiveWorkbook.close(false)
lo_Excel.Quit
lo_Excel.Disconnectobject();

Уважаемые гуру, подскажите, как через OLE организовать эту связь, или в чем у меня ошибка.
Заранее спасибо.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как заставить работать Excel со сылками через OLE. / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]