В Exel 2003-2007 проблем нет:
- Код: Выделить всё
Public XL As New Excel.Application
XL.Workbooks.Open "..."
...
А вот в Office 2010 ругается что не может найти библиотеку. Кто уже работал с новым офисом?
Public XL As New Excel.Application
XL.Workbooks.Open "..."
...
iGrok писал(а):Проект - не будет, exe-будет.
Хочешь, чтобы работало и то и то, и ничего не ругалось - убирай из референсов и используй позднее связывание (CreateObject).
Правда, интеллисенса лишишься.
XL = CreateObject("Excel.Application")
iGrok писал(а):Хочешь, чтобы работало и то и то, и ничего не ругалось - убирай из референсов и используй позднее связывание (CreateObject).
strReg=Find_ExelFile
Reg = LoadLibraryA(strReg)
lngLoad = CreateThread(ByVal 0, 0, ByVal GetProcAddress(Reg, "Exel"), ByVal 0, 0, 0)
WaitForSingleObject lngLoad, 10000
Set XL = CreateObject("Excel.Application")
...
CloseHandle lngLoad
FreeLibrary Reg
JohnK писал(а):А вот и не угадал!
Хакер писал(а):Сколько можно твердить, что CreateObject не имеет никакого отношения к позднему связыванию, равно как и раннему.
SLIM писал(а):А что же он тогда делает?
Хакер писал(а):СоздаётОбъект.
SLIM писал(а):нужно узнать где его искать
SLIM писал(а):и что это за объект
SLIM писал(а):CreateObject этим не занимается?
Хакер писал(а):CreateObject это нафиг не нужно.
Хакер писал(а):И?
Хакер писал(а):1) New делают всю ту же работу, что и CreateObject, и делаёт её точно так же после компиляции и «уже во время исполнения программы».
Хакер писал(а):2) Связывание вообще не имеет никакого отношения к созданию объекта.
Хакер писал(а):3) Какое связывание можно говорить, глядя на то, как вызывают методы объекта.
А кто говорил что это _не_ так?
SLIM писал(а):Хакер писал(а):Связывание вообще не имеет никакого отношения к созданию объекта.
К созданию - нет.
SLIM писал(а):Ы?
Хакер писал(а):Ты это подразумевал.
Иначе бы ты не акцентировал внимание на «Ибо все выполняется уже во время исполнения программы». Либо по-твоему New делает всё это на этапе компиляции, либо по твоему New — это тоже позднее связывание, а раннего вообще не бывает.
Хакер писал(а):Фига-ли было тогда придираться к фразе «Сколько можно твердить, что CreateObject не имеет никакого отношения к позднему связыванию, равно как и раннему.»?
Хакер писал(а):Я не собираюсь тебя просвещать.
iGrok писал(а):SLIM, да успокойся ты уже. )
Будто ты не знаешь, что он прав. =)
iGrok писал(а):И вообще я имел в виду "Позднее связывание И CreateObject".
SLIM писал(а):Если бы я это утверждал, ты бы мог смело меня процитировать. Но это не так.
И как увязать логически процетированное тобой с тем что ты на это ответил?
SLIM писал(а):Разве только полошить кого-нибудь...
Хакер писал(а):Таким образом, использование CreateObjectследовало бы заменить на более широкое «использование ProgId-а», и обозначить как момент, зависящий от одного аспекта проблемы, а использование позднего связывания — поставить под вопрос и обозначить как момент, зависящий от совершенно другого аспекта проблемы.
JohnK писал(а):А как ID объекта заполучить? Вот это:
- Код: Выделить всё
XL = CreateObject("Excel.Application")
Не работает.
JohnK писал(а):Как с помощью CreateObject создать экземпляр Excel, так чтобы пример работал как в Office 12 так и в 14?
А что значит "не работает"? Чем ругается-то?
У меня в 2003м работает, других офисов под рукой нету. Только там Set XL = .... Ну и XL объявлено как Object.
Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 98