Как вернуть значение из переменной функции VBA в Defined Name в Excel 2010?Как присвоить переменную Excel VBA определенному имени
В приведенном ниже примере я хочу i
быть возвращены в Excel как определенное имя Value_Count
, которые могут быть повторно использованы в других формулах, например, что если MsgBox
показывает 7, затем ввести =Value_Count
в клетке будет также возвращать 7.
Все остальное ниже о том, что я пробовал, и почему я хотел бы это сделать. Если это нецелесообразно, я был бы рад узнать, почему, и если есть лучший метод.
Function process_control_F(raw_data As Variant)
Dim i As Integer
i = 0
For Each cell In raw_data
i = i + 1
Next cell
MsgBox i
End Function
Моя цель состоит в том, что значение, возвращаемое MsgBox возвращается вместо того, чтобы определенное имя, которое может быть повторно использован в других forumulas. Однако я не могу получить значение для показа. Я пробовал различные формы (слишком много, чтобы вспомнить, не говоря уже тип здесь), подобных
Names.Add Name:="Value_Count", RefersTo:=i
Я пытаюсь сделать это без возврата тонны дополнительной информации к клеткам, просто вспомнить его, следовательно, желание вернуться прямо к определенному имени.
Я использую функцию, а не Sub, чтобы упростить мое использование, но если это проблема, я могу определенно изменить типы.
Я создаю версию статистической контрольной диаграммы. Мой желаемый конечный результат - захватить диапазон данных (как правило, около 336 значений) и применить к ним ряд правил управления (через VBA), а затем вернуть любые значения, которые выходят за пределы параметров управления, на определенные имена, которые затем могут быть начерчены или иначе манипулировать.
Я видел (и имел версии) электронные таблицы, которые достигают этого с помощью цифровых акров вспомогательных столбцов, ведущих к диаграмме и сводной статистике. Я пытаюсь выполнить его в основном на фоне VBA, который будет вызван через Defined Names to Charts - я просто не могу получить значения из VBA в диаграммы.
Интерес к использованию функции, а не к Sub, заключался в упрощении доступа к ней. Я бы предпочел не создавать пользовательский интерфейс (или использовать его), если я могу просто нажимать клавишу в ячейку и напрямую обращаться к результатам. Однако, как отметил Жан-Франсуа Корбетт, это быстро превращается в крутой путь к моей цели. Тем не менее, я все еще думаю, что это стоит того, потому что в долгосрочной перспективе у меня много итераций этого анализа, чтобы выполнить, поэтому некоторое время установки стоит того, чтобы сэкономить время.
Прелесть функции является то, что он возвращает свое собственное значение XD Если вы не хотите, чтобы вернуться в клетку, поэтому использование определенного имени вместо переменной? 'x = process_control_F' будет работать, если вы установите' process_control_F = i' – findwindow
Можете ли вы немного разъяснить, что вы пытаетесь сделать, в целом? С ответом ниже видно, что все еще немного путают. Не могли бы вы объяснить еще большую картину, и, надеюсь, у нас не будет проблемы с «XY» (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – BruceWayne
Если вы введете '= Value_Count' в ячейку, как она будет знать, что должен использовать вход' raw_data', чтобы вычислить 'i'?Ваш предложенный подход при переносе функции возвращает значение в определенное имя, для меня нет смысла. Я не могу помочь. Конечно, есть способ достичь своей цели (которая до сих пор не ясна для меня), но, конечно же, это не так. –