Как я могу сделать функцию C# (UDF) в виде формулы в excel с предиктивным поиском ее параметра в приложении excel vsto
У меня есть в Excel VSTO для приложения на C#, я хочу, чтобы вставить UDF, определенный в C# как формулу в Excel таким образом, что как только пользователь вводит в ячейки Excel, как myfunction в консоли (т. е. как только она открывает скобки, интеллектуального поиска должен быть первый параметр может находиться в winform в список или выпадающий список.
Пожалуйста, предложите любой способ сделать это , я попытался вставить формулу в Excel-ДНК , то я пытаюсь прочитать строку, как только пользователь используя асинхронные ждут на sheet_selectionchange событие, но я получаю значение null, используя "Cell.значение2" наверное, потому, что она отбирает пустое значение отбора, когда событие change происходит, а не значение, которое я ввел в задачу.Задержка(10000); исполнение.
Что я уже пробовал:
public static async void Worksheet_SelectionchangeAsync(Excel.Range Target) { string val = ""; await Task.Delay(10000); Excel.Application XlApp = Globals.ThisAddIn.Application; //excelApp = new Excel.ApplicationClass(); //excelApp.Visible = true; // System.Threading.Thread.Sleep(10000); string cellAdd = XlApp.ActiveCell.Left.ToString(); Excel.Worksheet ws = (Excel.Worksheet)XlApp.ActiveWorkbook.ActiveSheet; int row = Target.Row; int col = Target.Column; var cell1 = Target.Value2; Excel.Range cell = (Excel.Range)ws.Cells[row, col]; Excel.Range r = (Excel.Range)XlApp.Selection; var cell11 = r.Value2;// x.Cells[4, 7]; // null reference error( debugger function requires all threads to run) // XlApp.Cells[1, 1] = cell.Value2; // null reference ( debugger function requires all threads to run) string i = (Globals.ThisAddIn.Application.Cells[row, col] as Excel.Range).Value2.ToString() ; XlApp.EnableEvents = false; }