Страницы: 1
RSS
Public Function возвращает, но не пересчитывает значение Public (As String) при изменении последнего
 
Добрый день!

Public zStr As String = "" (при открытии файла).
Кнопочно-нажимной макрос присваивает zStr значение = ActiveCell.Value

Public Function возвращает значение zStr.
В теории.

На практике же ДАЖЕ при включённом Calculation = xlAutomatic
Public Function возвращает zStr ТОЛЬКО если нырнуть в ячейку вывода.
Т.е., автоматический пересчёт не работает.

Файл прилагаю. Незамысловатый код:
Код
Public zStr As String
Код
Sub Q1()
zStr = ActiveCell.Value
Beep
End Sub
Код
Public Function zStr_Value() As String
zStr_Value = zStr
End Function

Application.Volatile не помогает.
Видимо, поможет только Worksheet_Change.
Изменено: RazorBaze - 07.08.2018 18:22:19
 
Цитата
RazorBaze написал:
Application.Volatile
Помогает. Функция пересчитывается при изменении значения любой из ячеек. В макросе Q1 Вы значения ячеек не меняете.Добавьте после строки 2 в Q1 обратное присвоение.
Владимир
 
sokol92, и правда - вот так работает:
Код
Sub Q1()
Application.Volatile
zStr = ActiveCell.Value
ActiveCell.Value = zStr
Beep
End Sub

Только при следующем открытии книги результат не сохраняет. Но я уже всё равно через Worksheet_Change сделал.
Тему могу считать закрытой. Спасибо!
Изменено: RazorBaze - 07.08.2018 20:05:04
Страницы: 1
Наверх