39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
1

Не подключается PERSONAL.XLS в новую открытую книгу Excel

20.11.2015, 08:30. Показов 2364. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть событие на кнопки
C#
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
27
28
29
30
31
32
33
34
 private void BTN_START_Click(object sender, EventArgs e)
        {
          string Macro_Type = "";
                switch (LB_SELECT_MOD.Text)
                {
                    case "Дебиторы":
                         Macro_Type = "Отчёт_1";
                         break;
                    case "Кредиторы":
                         Macro_Type = "Отчет_2";
                         break;
                    case "Дебиторы GSM":
                         Macro_Type = "Отчёт_3";
                         break;
                }
         string FilePath2 = TB_OTCHET.Text;
                excelapp = new Excel.Application();
                    excelapp.Visible = true;
                    
                   excelapp.Workbooks.Open(FilePath2,
                     Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                     Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                     Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                     Type.Missing, Type.Missing);
 
                    excelapp.Run(Macro_Type, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing);
         }
При открытие Excel "Книга1", Excel начинает ругаться "Не найдет макрос **** ".
Но если открыть Excel через Windows просто так то там моя персональная книжка подключена и все макросы включены.

Добавлено через 21 час 57 минут
Попробовал по другому.
Добавил надстройку вот так.
C#
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
27
28
29
string Macro_Type = "";
                switch (LB_SELECT_MOD.Text)
                {
                    case "Дебиторы":
                         Macro_Type = "Отчёт_для_ДЗ";
                         break;
                    case "Кредиторы":
                         Macro_Type = "Отчет_для_КЗ";
                         break;
                    case "Дебиторы GSM":
                         Macro_Type = "Отчёт_для_GSM_ДЗ";
                         break;
                    case "Кредиторы GSM":
                         Macro_Type = "Отчёт_для_GSM_КЗ";
                         break;
//===Добавление надстройки===
excelapp.AddIns.Add("C:\\Users\\kirill.martinov\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\PERSONAL.XLSB", false).Installed = true;
 
excelapp.Run(Macro_Type, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing);
 
//===Удаление надстройки===
excelapp.AddIns.Add("C:\\Users\\k.martinov\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\PERSONAL.XLSB", false).Installed = false;
Но выдает ошибку.Строка 17.
COMException: Метод Add из класса AddIns завершен неверно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2015, 08:30
Ответы с готовыми решениями:

Excel, ссылка на открытую книгу
Добрый день. Имеется файл Excel, он уже открыт. Как получить на него ссылку, чтобы я мог работать...

Вставка значения в книгу открытую из OpenFileDialog
Все доброго времени суток. Вопрос тривиальный, однако я - новичок, с этим не знаком и потому не...

Можно ли подключить уже открытую книгу Excel
Есть ли возможность в VB подключить уже открытую книгу Excel?

Как из Excel/Vba внести открытую книгу в SQL Server 7 как OLE объект?
Хотелось бы так: При нажатии соотв. кнопки. соединить с SQL Serverом и сохранить activesheet в SQL...

12
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
20.11.2015, 08:53  [ТС] 2
Просто попробовал вот так.
C#
1
excelapp.Run(Macro_Type);
COMException :Не удается выполнить макрос "Отчёт_для_ДЗ". Возможно, этот макрос отсутствует в текущей книге либо все макросы отключены.
Вот скрин при открытие Excel через C#
Не подключается PERSONAL.XLS в новую открытую книгу Excel

А вот я открыл Excel через Windows.
Не подключается PERSONAL.XLS в новую открытую книгу Excel

Может дело в том что я открываю в C# без поддержки макросов.
Если это так то как их включить в C#.
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
20.11.2015, 09:16  [ТС] 3
Совет по копипасту кода из VBA в C# и с последующим редактированием, мне как то не хочется, тем более когда каждый макрос почти по 600-700 строчек.
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
23.11.2015, 14:49  [ТС] 4
_UP_
Неужели никаких идей нету из за чего это может быть?

Добавлено через 2 часа 22 минуты
Может есть возможность создать в VisualStudio Модуль на VBA скопировать туда из Excel-ского VBA код и включить его в проект C# и как отдельный модуль вызывать его при необходимости?

Добавлено через 3 часа 55 минут
Нашел вариант как сделать с помошью редактирования кода в ручную
Converting a VBA Macro to C# 4.0
Но приберегу этот вариант до последнего, может найду что то по легче.
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
25.11.2015, 07:42  [ТС] 5
_UP_
Попробовал через метод invoker-a
C#
1
excelapp.GetType().InvokeMember("Run" , System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, excelapp, new object[]{Macro_Type});
TargetInvocationException:Адресат вызова создал исключение.
И почему то подсвечивает excelapp в этой строке

Добавлено через 15 минут
для справки
ОС у меня WIN7 x64
MS Office 2010
MS Visual Studio 2012
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
26.11.2015, 10:28  [ТС] 6
_UP_
Может ктонибудь протестирует один из вариантов и скажет работает у него что то или нет.?
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
30.11.2015, 07:18  [ТС] 7
_UP_
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
01.12.2015, 07:21  [ТС] 8
_UP_
Мне очень нужен совет.
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
03.12.2015, 12:15  [ТС] 9
_UP_
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
05.12.2015, 07:41  [ТС] 10
_-UP-_
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
09.12.2015, 12:09  [ТС] 11
up plz
0
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
16.12.2015, 15:27  [ТС] 12
_UP_. . . не?
0
5 / 5 / 5
Регистрация: 17.12.2013
Сообщений: 202
22.12.2015, 16:26 13
Попробуй
1
22.12.2015, 16:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2015, 16:26
Помогаю со студенческими работами здесь

Таблица из Access в новую книгу Excel
Добрый день! Есть таблицы в Access, с помощью запросов VBA Excel вывожу определенные столбцы из...

Как сохранить диаграмму в новую книгу Excel?
Добрый день, уважаемые коллеги Подскажите пожалуйста, каким образом средствами VBA можно...

Шутки PERSONAL.XLS
Кто-нибудь встречал подобное? В папке XLStart файл PERSONAL.XLS отсутствует (показ скрытых...

Недоступна макропроцедура из Personal.xls!
Help! Поместил в Personal.xls макросы - Function & Sub. Из модуля книги делаю вызов подпрограмм -...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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