как написать в ячейку из VBA - PullRequest
3 голосов
/ 12 ноября 2010

кажется глупым вопросом даже для новичка VBA, но я не могу понять, как записать в ячейку в VBA ... У меня есть функция в "Module1", которая выглядит так:

Function Foo(bar As Boolean)
  Range("A1").Value = 1
  Foo = ...
End Function

Затем скажите, что я установил формулу ячейки A2 на:

=Foo(true)

Сам вызов работает, если я вычеркну строку настройки диапазона ... в этом случае установка вызывающей ячейки в значение foo.Но я бы хотел, чтобы это в конечном итоге записывало тонну ячеек одновременно, а не вызывало разные функции для каждой ячейки.Что я делаю неправильно ???


Если этот код должен работать как есть ... есть ли в Excel 2007 настройки, которые могут блокировать редактирование ячейки, или что-то в этом роде?

Ответы [ 2 ]

2 голосов
/ 12 ноября 2010

Согласно этой странице , пользовательская функция Excel не может изменять другие части рабочей книги.Похоже, вам, возможно, придется попробовать другой способ.

0 голосов
/ 16 ноября 2010

Чтобы создать пользовательскую функцию в VBA, введите в модуле следующее

Public Function MyCalc(ByRef r as Range) as Double
    MyCalc = r.Value^2
End Function

или

Public Function MyCalc(ByVal x as Double) as Double
    MyCalc = x^2
End Function

и используйте его на рабочем листе как =MyCalc(A2), который возвращает и устанавливает соответствующее значение. Выберите, хотите ли вы передать значение или диапазон в зависимости от того, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...