Как программно запустить макрос, который нуждается в нажатии кнопки в c # - PullRequest
0 голосов
/ 25 февраля 2019

Используя программу на C #, мне нужно нажать кнопку «Button1», которая запускает макрос, и далее появляется диалоговое окно, которое снова требует нажатия кнопки «Button_OK».

Кроме того, выполнение остается в рабочем состоянии до тех пор, пока не будет нажата кнопка Button_OK.

Ниже приведен код:

            Excel.Application app = new Excel.Application();

            app.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityLow;
            ;
            // Make the excel visible
            app.Visible = true;

            Excel.Workbook wb = app.Workbooks.Open("<PATH>\\Downloads\\Edited\\UpdatedAgain23\\Again\\<FILENAME>.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
            Excel.Worksheet ws = wb.Worksheets["SHEETN"] as Excel.Worksheet;

            ws.Select();
            if (wb.HasVBProject)  // Has macros
            {
                try
                {
                    try
                    {
                        // Show "Microsoft Excel Security Notice" prompt
                        var project = wb.VBProject;

                    }
                    catch (System.Runtime.InteropServices.COMException comex)
                    {
                        Console.Write("Catch 1");

                        // Macro is enabled.
                        app.Run("<FILENAME>.xlsm!MacroName");

                        Console.Write("Catch 2");

                        app.Run("formname: Button_Click");

                        Console.Write("Catch 3");
                        Console.Write("\nThrown");
                        wb.SaveAs("<FILEPATH>\\Downloads\\Edited\\UpdatedAgain23\\Again\\AndAgain\\<FILENAME>.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);


                        throw;
                    }
                }
                catch (System.Exception expn)
                {
                    return;
                }

Кроме того, нажатие кнопки Button_OK запускает некоторую загрузку данных, котораянеобходимо для редактирования Excel программно, и мне нужно сохранить это также

enter image description here

...