Запуск макроса в книге xlsm - C#
Формулировка задачи:
Нашел много источников но ни один не отработал у меня.
Подозреваю, что не правильно указываю синтаксис возле имени макроса
Макрос сохранен в отдельном модуле Splitting под именем Split
На скринах ошибка и VBA в книге
Часть кода C#:
Буду благодарен за помощь
static void exceling() { excelApp.Visible = false; excelBook = excelApp.Workbooks.Open(attfile); foreach (Excel.WorkbookConnection cnn in excelBook.Connections) { cnn.OLEDBConnection.BackgroundQuery = false; } excelBook.RefreshAll(); excelApp.Run("C:\\Users\\AKravchenko\\Desktop\\Оперативный_отчет\\Оперативный_МАКРО.xlsm!Splitting.Split", 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); excelBook.Save(); excelBook.Close(0); excelApp.Quit(); }
Решение задачи: «Запуск макроса в книге xlsm»
textual
Листинг программы
static string attfile = @"C:\Users\Оперативный_отчет\Оперативный_МАКРО.xlsm"; static void Main() { exceling(); } static void exceling() { Excel.Application xlApp = new Excel.Application(); xlApp.Visible = false; Excel.Workbook xlWorkBook; xlWorkBook = xlApp.Workbooks.Open(attfile); foreach (Excel.WorkbookConnection cnn in xlWorkBook.Connections) { cnn.OLEDBConnection.BackgroundQuery = false; } xlWorkBook.RefreshAll(); xlWorkBook.Save(); xlWorkBook.RefreshAll(); xlWorkBook.Save(); xlApp.Run("Оперативный_МАКРО.xlsm!Splitting.Split"); xlWorkBook.Save(); xlWorkBook.Close(0); xlApp.Quit(); releaseObject(xlApp); releaseObject(xlWorkBook); } private static void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; } finally { GC.Collect(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д