Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
#1

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

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

Есть событие на кнопки
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2015, 08:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не подключается PERSONAL.XLS в новую открытую книгу Excel (C#):

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

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

Excel.xls(2003) сохранить как excel.xlsx (2010) - C#
как реализовать: есть файлы Excel2003 *xls надо сохранить их в *xlsx Excel2010 fileExcel.SaveAs() просто перезаписывает его с новым...

Открыть txt файл в Excel и сохранить в xls формате - C#
Здравствуйте! мне нужно данные из txt файла пересохранить в .xls формате. тем много, но конкретных шагов для ламера, что где кликнуть,...

.NET 4.x Можно ли подключить уже открытую книгу Excel - Visual Basic .NET
Есть ли возможность в VB подключить уже открытую книгу Excel?

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

12
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
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
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
20.11.2015, 09:16  [ТС] #3
Совет по копипасту кода из VBA в C# и с последующим редактированием, мне как то не хочется, тем более когда каждый макрос почти по 600-700 строчек.
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
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
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
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
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
26.11.2015, 10:28  [ТС] #6
_UP_
Может ктонибудь протестирует один из вариантов и скажет работает у него что то или нет.?
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
30.11.2015, 07:18  [ТС] #7
_UP_
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
01.12.2015, 07:21  [ТС] #8
_UP_
Мне очень нужен совет.
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
03.12.2015, 12:15  [ТС] #9
_UP_
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
05.12.2015, 07:41  [ТС] #10
_-UP-_
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
09.12.2015, 12:09  [ТС] #11
up plz
0
Deimos_
32 / 32 / 14
Регистрация: 24.11.2014
Сообщений: 235
16.12.2015, 15:27  [ТС] #12
_UP_. . . не?
0
googlogmob
4 / 4 / 3
Регистрация: 17.12.2013
Сообщений: 200
22.12.2015, 16:26 #13
Попробуй
1
22.12.2015, 16:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2015, 16:26
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru