Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Изменение ячеек из функции

Автор stalker_msexcel, 01.06.2012, 16:18

« назад - далее »

stalker_msexcel

вопрос следующий

есть некая функция, которая в своей работе изменяет ячейки в таблице. При вызове этой функции из процедуры, запускаемой руками из редактора VBA - все работает. если к функции обращаться из ячейки таблицы - то получаю #ЗНАЧ

вот пример

Function test()
    Range("Matrix").Cells(1, 1) = 22
    test = 1
End Function

Sub sett()
    MsgBox test
End Sub

Если я руками стартую процедуру sett - значение в ячейке меняется и выкочит msgbox. А если напишу в ячейке =test() - получаю ошибку #ЗНАЧ. если убрать изменение ячейки - все работает.
Как обойти? нужно для целей статистического накапливания информации при расчетах (что бы каждый следующий расчет таблицы давал новое значение этой функции)

kuklp

Если я правильно понял... Все верно. Формула листа не может менять значения других ячеек. Она только возвращает значение в ту ячейку, где сама находится.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Шпец Докапыч

Цитата: stalker_msexcel от 01.06.2012, 16:18
Как обойти?
Можно воспользоваться заменой:
Function ЧЕРВЬ()
   'Нужна формула EXCEL которая даёт эффект копирования
   'https://forum.msexcel.ru/empty-t194.0.html
    Application.Volatile
    With Range("Matrix").Cells(1, 1)
      .Replace IIf(Len(.Value), "*", ""), 22
    End With
    ЧЕРВЬ = 1
End Function
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

exceleved

Цитироватьчто бы каждый следующий расчет таблицы давал новое значение этой функции
Можно без VBA: в ячейку, например E1, вставьте формулу =E1+1, в Параметрах включите Итерации и Предельное число итераций =1.