Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/65: Рейтинг темы: голосов - 65, средняя оценка - 4.77
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
1

Imports Microsoft.Office.Interop не работает

12.04.2016, 16:17. Показов 11902. Ответов 19

Author24 — интернет-сервис помощи студентам
Доброго времени!

Имею на машине Вынь10, VB Express 2010 и 2016 офис.
Хочу прикрутить к программе пространство имен VBA Excel. И не получается. Внимательно прочитал вот это: https://msdn.microsoft.com/ru-... -snippet-1 , нашел вот эту запись, вставил, а оно мне говорит: "Пространство имен или тип, указанные в операторе Imports "Microsoft.Office.Interop", не содержат открытые члены или не могут быть найдены. Убедитесь, что пространство имен или тип определены и содержат хотя бы один открытый член. Убедитесь, что имя импортируемого элемента не было использовано в других Imports."

VB.NET
1
Imports Microsoft.Office.Interop
Как правильно его прикрутить? Гугл мне не помог.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2016, 16:17
Ответы с готовыми решениями:

Работа с Microsoft.Office.Interop.Excel
Всем доброго времени суток. Возникает проблема работы с библиотекой Microsoft.Office.Interop.Excel...

VS 2015. Не импортируется Microsoft.Office.Interop
Обновил студию до 2015 версии. Создаю новый проект пытаюсь импортировать данную библиотеку, и...

Microsoft.Office.Interop.Excel.Worksheet - переключение между листами
Споткнулся на пустом месте. Начал работать с многостраничным файлом. При переключении между...

Microsoft.Office.Interop.Excel.Application процессы Excel в памяти компьютера
Добрый день, коллеги! Программа работает с файлами Excel. В каждой процедуре я указываю, что...

19
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.04.2016, 16:28 2
На сайте для кода VB ошибка, в версии для C# всё правильно. Должно быть:
VB.NET
1
Imports Excel = Microsoft.Office.Interop.Excel
0
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
12.04.2016, 16:53  [ТС] 3
Пробовал. Та же ошибка. Мало того, я в ссылках на вкладке COM не могу найти Microsoft Excel Object Library. Это какая-то фишка 2016 версии, видимо.

Добавлено через 10 минут
http://stackoverflow.com/quest... erop-excel

Вот тут говорят, что надо импортировать Microsoft.Office 16.0 Object Library. Только оно не работает - пространство имен не появляется все равно.
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.04.2016, 16:56 4
У меня стоит 2016. Всё присутствует. Сначал добавляешь ссылку на библиотеку, затем импортируешь пространство имён
Миниатюры
Imports Microsoft.Office.Interop не работает  
1
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
12.04.2016, 17:35  [ТС] 5
А у меня даже не предлагает interop после microsoft.office.

Я вот задумался: может быть причиной express-выпуск студии?
Миниатюры
Imports Microsoft.Office.Interop не работает  
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.04.2016, 17:54 6
Microsoft Excel 16.0 Object Library. Не Office
0
1149 / 906 / 153
Регистрация: 25.07.2015
Сообщений: 2,041
12.04.2016, 18:45 7
Что-то подсказывает , что VS2010 не коннектится с библиотеками 2016 офиса
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.04.2016, 19:19 8
Это почему же?
0
Модератор
Эксперт .NET
4298 / 3374 / 505
Регистрация: 27.01.2014
Сообщений: 6,179
12.04.2016, 20:47 9
у меня все работает. вы не на вкладке COM ищите библиотеку а на вкладке NET.. и еще, смотрите на версию, не выбирайте версию 14.0 так как на машинах где стоит офис 2007-2014 ваша программа не запустится, выбирайте версию 12.0... это значит что начиная с офиса 2007 все последующие будут поддерживаться вашим ПО.
1
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
13.04.2016, 16:42  [ТС] 10
У меня НЕТУ Microsoft Excel 16.0 Object Library ни на вкладке COM, ни на вкладке .NET. Могу скрины выложить.
Не могли бы Вы указать путь до нужной библиотеки? Поищу подобную у себя.

Что-то из области фантастики и сопряжения Win10, Office16 и VS2010.

Дома на Вынь7 и 2013 офисе с той же студией все ок - на вкладке .net есть microsoft.office.interop.excel 2 версий - 12 и 14.
0
Модератор
Эксперт .NET
4298 / 3374 / 505
Регистрация: 27.01.2014
Сообщений: 6,179
13.04.2016, 17:22 11
Лучший ответ Сообщение было отмечено Proidoha как решение

Решение

а тогда вопрос - а какой у вас офис? не 64 бит случайно?

посмотрите по этому пути:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.lnterop.Excel.dll
2
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
13.04.2016, 18:12  [ТС] 12
Цитата Сообщение от Yury Komar Посмотреть сообщение
а тогда вопрос - а какой у вас офис? не 64 бит случайно?
посмотрите по этому пути:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.lnterop.Excel.dll

Да, Офис "стандартный 2016 х64".
В папке C:\Program Files (x86)\Microsoft Visual Studio 10.0\ папки Visual Studio Tools for Office у меня нет. И это ответ на мой вопрос. Спасибо! Необходимо было установить этот пакет отдельно (он не входит в пакет VB 2010 Express по умолчанию).

Ссылка на требуемый пакет: https://www.microsoft.com/ru-r... x?id=48217
1
1712 / 1200 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
14.04.2016, 07:15 13
хм... а как же без этих тулов цеплялись в vb6 или в версиях до 2005... Часом, когда ставили офис, не убрали в настройках галку, отвечающую за это? Что-то вроде "поддержка программирования" или как-то так... Я в свое время еще в 2003м офисе сэтим налажал. В итоге написанные уже программы с ним работать могли, а вот в новом проекте добавить ссылку никак нельзя было, и если открыть исходники других проектов - студия ругалась на эти ссылки. Позднее связывание при этом работает.
0
Модератор
Эксперт .NET
4298 / 3374 / 505
Регистрация: 27.01.2014
Сообщений: 6,179
14.04.2016, 08:49 14
vb6 не видел библиотек от 64-битного офиса. в NET с этим, суда по исходам данной темы, проблем нет... а в vb6 использовался COM объект, в NET же чаще люди используют вспомогательную библиотеку Office.Interop, которая является всего навсего набором констант и тому подобного... своего рода позднее связывание, но дающее помошь в редакторе кода с подсказками от Intellisense... кажется так
0
1712 / 1200 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
14.04.2016, 09:11 15
Цитата Сообщение от Yury Komar Посмотреть сообщение
vb6 не видел библиотек от 64-битного офиса
не, я не в контексте х64. Просто комплекта VSTO ведь не было. Да и потом он уже появился только к 2005 версии, отдельным дистрибутом, а только с 2008й начал по умолчанию ставиться.
Я имел в виду, что при установке офиса вполне можно отключить возможность присоединения библ к среде программирования, и такое бывает в некоторых сборках 2003 по умолчанию (с чем я однажды и столкнулся). Проблема решилась переустановкой офиса в режиме исправления.
Как-то так...
0
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
14.04.2016, 13:01  [ТС] 16
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
Часом, когда ставили офис, не убрали в настройках галку, отвечающую за это?
Сисадмины говорят, что никакие галочки не снимали.
Раньше написал, что проблема решена, но, к сожалению, это не так.
Установка Visual Studio Tools for Office вообще никак не изменила ситуацию:
Папка C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\ по прежнему отсутствует
На диске C отсутствует файл Microsoft.Office.lnterop.Excel.dll

Нашел похожую тему на форуме: Как подключить microsoft.office.interop.excel
Предложенный в теме msi скачал и установил. И все равно никаких изменений.

Есть еще идеи как бороться с этой бедой?
0
Модератор
Эксперт .NET
4298 / 3374 / 505
Регистрация: 27.01.2014
Сообщений: 6,179
14.04.2016, 19:46 17
интересно получается. может все дело в Express версии студии? хотя врятли...
0
646 / 474 / 38
Регистрация: 04.11.2013
Сообщений: 1,949
15.04.2016, 15:22  [ТС] 18
Решил беду скачав с домашнего компа полностью папку Visual Studio Tools for Office и подсунув программе нужную библиотеку вручную. Костыль, конечно, но хоть так. Пространство имен появилось, компиляцию пока не пробовал делать.
0
19 / 19 / 0
Регистрация: 05.02.2015
Сообщений: 175
08.09.2016, 16:59 19
Доброго вечера.
Подскажите, как сделать "универсальную ссылку", к примеру на excel, если заранее не известно, какой офис установлен на ПК?
0
Модератор
Эксперт .NET
4298 / 3374 / 505
Регистрация: 27.01.2014
Сообщений: 6,179
08.09.2016, 17:28 20
Devils, универсальных не бывает, есть только позднее связывание, в котором все рабочие объекты имеют тип Object вместо Excel, Word, Range и так далее.
0
08.09.2016, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2016, 17:28
Помогаю со студенческими работами здесь

Работа с Excel через Microsoft.Office.Interop.Excel
Необходимо реализовать програмку взаимодействующую с Excel в режиме реального времени. Проблем...

Не могу записать в файл Excel при Microsoft.Office.Interop.Excel.Application.Visible = False
Коллеги, доброго времени суток. Столкнулся с такой проблемой. Не могу записать в файл, когда...

"Application" в пространстве имен "Microsoft.Office.Interop.Excel" является неоднозначным
Собственно, подключил библиотеку Microsoft Excel 11 object library, прописал Imports...

Добавление References Microsoft.Office.Interop
добрый день Делаю экспорт из датагрида в ексел фаил . Для этова мне нужно подключить References...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru