Запуск макроса в книге 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();
}
}