#c# #arrays #excel #excel-formula #excel-addins
#c# #массивы #excel #excel-формула #excel-надстройки
Вопрос:
Я пытаюсь заставить надстройку C # Excel изменять параметры формулы массива на месте; т. е. сделайте то же самое, что пользователь, изменяющий формулу массива и нажимающий ctrl-shift-enter.
Установка ActiveCell.Свойство FormulaArray этого не достигает; оно выдает ошибку «Вы не можете изменить часть массива».
Кто-нибудь знает, как я могу этого добиться?
Решение, которое также работает в VBA, было бы блестящим.
Я пытался создать некоторую логику, которая «проходит» по периметру формулы массива и сначала удаляет ее, но она не учитывает смежные формулы массива, и я считаю, что это излишне радикально.
Ответ №1:
Похоже, вы ищете свойство CurrentArray
В VBA это приведет к вводу формулы массива с несколькими ячейками во все ячейки формулы массива, одна ячейка из которых равна Z99
Диапазон ("Z99").CurrentArray.FormulaArray=" ... "
Комментарии:
1. Это привело к моему решению, спасибо. Я создал следующее: попробуйте{ Excel. Диапазон currentArray = excel. ActiveCell. CurrentArray; currentArray. Очистить(); excel.get_Range(GetExcelColumnName(currentArray. Столбец 1) currentArray. Строка отсутствует. Значение). Select(); } catch(исключение){}
Ответ №2:
Adjust.zip на http://tukhi.com/tukhi_fun.html делает это.