Estou com o mesmo problema, ele entra em um looping infinito até dar erro.
Como poderia fazer para rodar a macro 1 vez quando os valores estiverem iguais, no meu caso o valor varia entre 0 e 1, quando estiver em 1 gostaria que rode uma vez, depois volta para 0 não roda e quando voltar em 1 roda novamente mais somente uma execução. Segue programação e arquivo.
Private Sub Worksheet_Calculate()
Static OldVal1 As Variant
If Range("C33").Value <> OldVal1 Then
OldVal1 = Range("H24").Value
Application.Goto Reference:="Tab_Ciclo"
ActiveWindow.SmallScroll Down:=3
Selection.Copy
Application.Goto Reference:="A_fim"
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet1").Select
ActiveCell.Offset(0, 5).Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveCell.Offset(1, 0).Range("A1").Select
End If
End Sub
Teste 1_macro.xlsx