Я написал следующий макрос, который вызывает Private Sub Worksheet_Calculate (), если я подтверждаю, что хочу его запустить.Ниже приведена первая часть кода:
Sub test()
Dim result As VbMsgBoxResult
result = MsgBox("Run Macro?", vbYesNo, "Excel VBA")
If result = vbYes Then
Call Worksheet_Calculate
End If
End Sub
Второй код, который является Private Sub Worksheet_Calculate (), должен скопировать результат вычисления, выполненного в B2, и вставить его в C2, а также добавитьвременная метка для D2.Столбцы C и D заполняются как значения в изменении B2, так что я получаю список результатов и меток времени в C3 и D3, C4 и D4 и т. Д. Вот код:
Private Sub Worksheet_Calculate()
Dim lastrow As Long
lastrow = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row
With Worksheets(1).Cells(lastrow, 2)
.Offset(1, 0) = Cells(2, 1).Value
.Offset(1, 1) = FormatDateTime(Now, vbLongTime)
End With
End Sub
Проблема, которую яЯ сталкиваюсь с тем, что мой Public Sub Worksheet_Calculate () вызывается только один раз, и всякий раз, когда я пересчитываю значение B2, ничего не происходит.
Есть ли способ а) сохранить второй код активированным или б) иметькнопка (кнопки) или флажок, который активирует / деактивирует второй код?
Надеюсь, это имеет смысл, заранее спасибо!