Slik kjører du en makro når bestemte celler endres i Excel

Sammendrag

I Microsoft Excel kan du opprette en makro som bare kalles når en verdi skrives inn i en celle i et bestemt ark eller i et ark som er åpent for øyeblikket.

Vær imidlertid oppmerksom på at du ikke bør kalle makroer unødvendig fordi de reduserer ytelsen til Excel.

Mer informasjon

Microsoft tilbyr programmering eksempler for illustrasjon, uten garanti verken uttrykt eller underforstått. Dette inkluderer, men er ikke begrenset til, underforståtte garantier om salgbarhet eller egnethet for et bestemt formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som blir demonstrert, og med verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan bidra til å forklare funksjonaliteten til en bestemt prosedyre, men de vil ikke endre disse eksemplene for å gi ekstra funksjonalitet eller lage prosedyrer for å dekke dine spesifikke behov. I mange tilfeller bør en makro bare kjøres når et bestemt antall celler har verdier som er lagt inn i dem (referert til som "nøkkel celler" i dette dokumentet). For å hindre at en stor makro kjøres hver gang en verdi skrives inn i en celle i et ark, må du sjekke for å se om ActiveCell er en av nøkkel cellene. For å oppnå dette kan du bruke snitt-metoden på ActiveCell og området som inneholder nøkkel cellene til å kontrollere at ActiveCell er en av nøkkel cellene. Hvis ActiveCell er i området som inneholder nøkkel cellene, kan du kalle makroen.

Slik oppretter du Visual Basic-makroen:

  1. Høyreklikk kategorien Sheet1, og klikk deretter Vis kode.

    Modularket bak Ark1 åpnes.

  2. Skriv inn følgende kode i modularket:

    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
    
  3. Klikk Lukk og gå tilbake til Microsoft Excel på Fil-menyen.

Når du skriver inn en oppføring i cellene a1: C10 i Ark1, vises en meldingsboks.