Tehát egy másik makró beírja valahova a szöveget. A laphoz rendelj egy makrót, ami ezt az eseményt (változást a lapon) lekezeli.
Sub ResA()
Cells(5, 1) = "Results available"
End Sub
Ez a makró beírja a lapra (jelen esetben az A5-be) a vizsgált szöveget. Mivel változás történt a lapon, beindul a hozzá rendelt makró:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "Results available" Then
Cells(2, 1) = Cells(1, 1) + 1
End If
End Sub
Ez az A2-be írja az A1+1 értéket abban az esetben, ha a lapon megjelent a "Results available" szöveg.
Nem akarod elhinni, de a function NEM TUD MÁS CELLÁBA ÍRNI.
Az itt közölt makród Else ága felesleges, hiszen a fu változó csak akkor kap értéket, ha a range("a1")=2 feltétel igaz. Amíg nem adsz értéket, a változó nulla, vagy üres string.
Példa a memória változóra:
Sub változó()
Dim v As Variant
v = 26
MsgBox v
beír v
End Sub
A Dim utasítással helyet foglalsz a v nevû változónak a memóriában, ebben az esetben variant típusút, vagyis mindegy, hogy a késõbbiek folyamán egész számot, tizedest, logikai értéket, vagy éppen dátumot töltesz bele.
A második sorral értéket adsz neki. A harmadikkal kiíratod egy üzenetbe, végül a negyedik sorrral meghívod a beír makrót, és átadod neki a változó értékét.
Sub beír(v)
Cells(2, 3) = v
End Sub
A címsorban zárójelek között szereplõ változó értékével kezd valamit ez a makró, jelen esetben beírja a C2 cellába.