Så här kör du ett makro när vissa celler ändras i Excel
Artikel
Gäller för:
Excel 2007, Excel 2003, Excel 2002, Excel 2000
Sammanfattning
I Microsoft Excel kan du skapa ett makro som bara anropas när ett värde anges i en cell i ett visst blad eller i ett blad som för närvarande är öppet.
Observera dock att du inte bör anropa makron i onödan eftersom de saktar ner prestandan hos Excel.
Mer information
Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportexperter kan hjälpa till att förklara funktionerna i en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla extra funktioner eller konstruera procedurer för att uppfylla dina specifika behov. I många fall bör ett makro endast köras när ett visst antal celler har värden införda i dem (kallade "nyckelceller" i det här dokumentet). För att förhindra att ett stort makro körs varje gång ett värde matas in i en cell i ett ark, måste du kontrollera om ActiveCell är en av nyckelcellerna. För att åstadkomma detta använder du metoden Korsa på ActiveCell och det intervall som innehåller nyckelcellerna för att verifiera att ActiveCell är en av nyckelcellerna. Om ActiveCell finns i intervallet som innehåller nyckelcellerna kan du anropa makrot.
Så här skapar du Visual Basic-makrot:
Högerklicka på fliken Blad1 och klicka sedan på Visa kod.
Modulbladet bakom Blad1 öppnas.
Skriv följande exempelkod i modulbladet:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End Sub
Klicka på Stäng och återgå till Microsoft Excel på Arkiv-menyn.
När du skriver en post i cellerna A1:C10 på Blad1 visas en meddelanderuta.