VBA: Activate/DeActivate, opfang ændringer i celler
Hej.Når jeg forlader et ark, skal jeg have fundet ud af om nogle bestemte celler har ændret værdi.
Jeg troede det var nemt klaret ved at lave 2 globale arrays og så gøre nedenstående:
Private Sub Worksheet_Activate()
OpenRiskValArray = Array(Cells(11, 4), Cells(11, 6), Cells(11, 9), Cells(11, 11), Cells(11, 13))
End Sub
Private Sub Worksheet_Deactivate()
CloseRiskValArray = Array(Cells(11, 4), Cells(11, 6), Cells(11, 9), Cells(11, 11), Cells(11, 13))
If (OpenRiskValArray(0) <> CloseRiskValArray(0)) Or (OpenRiskValArray(1) <> CloseRiskValArray(1)) Or _
(OpenRiskValArray(2) <> CloseRiskValArray(2)) Or (OpenRiskValArray(3) <> CloseRiskValArray(3)) Or _
(OpenRiskValArray(4) <> CloseRiskValArray(4)) Then
MsgBox "values have changed"
End If
End Sub
Så nemt skulle det åbenbart ikke være.
Værdierne kommer rigtigt nok ind i OpenRiskValArray, men problemet er, at lige så snart jeg kommer over i Deactivate sub'en, så har værdierne i OpenRiskValArray array'et opdateret sig og dermed indeholder de 2 arrays de samme værdier og så har jeg jo ikke opnået det jeg ville. Jeg forstår bare ikke lige helt hvorfor OpenRiskValArray bliver opdateret, for hvis jeg sætter et breakpoint der hvor OpenRiskValArray bliver sat, så bliver den kun kaldt den ene gang den skal - altså når man går ind på arket.
Hvad kan problemet være, og hvordan kan det løses?
På forhånd tak.
