Nedan kommer vi att titta på ett program i Excel VBA som skapar en rullande medelbord. Placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrad:
Område ("B3"). Value = WorksheetFunction.RandBetween (0, 100)
Denna kodrad matar in ett slumpmässigt tal mellan 0 och 100 i cell B3. Vi vill att Excel VBA ska ta det nya aktievärdet och placera det på den första positionen i det rullande genomsnittliga bordet. Alla andra värden ska flytta ned ett ställe och det sista värdet ska raderas.
Skapa en ändringshändelse för kalkylblad. Kod som läggs till i kalkylbladets ändringshändelse körs av Excel VBA när du ändrar en cell i ett kalkylblad.
1. Öppna Visual Basic Editor.
2. Dubbelklicka på Sheet1 (Sheet1) i Project Explorer.
3. Välj kalkylblad från den vänstra listrutan. Välj Ändra från den högra listrutan.
Lägg till följande kodrader i ändringshändelsen för kalkylblad:
4. Deklarera en variabel som heter newvalue av typen Integer och två intervall (firstfourvalues och lastfourvalues).
Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
5. Arbetsbladets ändringshändelse lyssnar på alla ändringar på Sheet1. Vi vill bara att Excel VBA ska göra något om något ändras i cell B3. För att uppnå detta, lägg till följande kodrad:
Om Target.Address = "$ B $ 3" Då
6. Vi initierar nytt värde med värdet för cell B3, förstfyra värden med intervall ("D3: D6") och sista värden med intervall ("D4: D7").
newvalue = Range ("B3"). Värde
Ange första värden = intervall ("D3: D6")
Ange lastfourvalues = Range ("D4: D7")
7. Nu kommer det enkla tricket. Vi vill uppdatera det rullande genomsnittliga bordet. Du kan uppnå detta genom att ersätta de fyra sista värdena med de fyra första värdena i tabellen och placera det nya lagervärdet på den första positionen.
lastfourvalues.Value = firstfourvalues.Value
Område ("D3"). Värde = nytt värde
8. Glöm inte att stänga if -uttalandet.
Avsluta om
9. Slutligen anger du formeln = GENNEMSNITT (D3: D7) i cell D8.
10. Testa programmet genom att klicka på kommandoknappen.