Michelle kysyy,
Luulen olevani oikealla tiellä pyöreällä viitteellä. Tässä on minun ongelmani. Minulla on kaksi solua,
A1=5
jaB1=5
. Haluan tehdä, että B1 muistaa 5, ja sitten haluan lisätä uuden arvon A1: ään, sanotaan, että A1 on nyt 10. Voinko saada B1-kaavan, joka muistaa 5, mutta lisää myös 10? Joten nytB1=15
?
Yleensä pyöreät viitteet ovat huono asia, mutta joskus niitä voidaan käyttää eduksi. Tässä on ei-makrotapa tehdä mitä haluat tehdä. Se toimii vain tietyissä tilanteissa.
- Valitse Excel-valikosta Työkalut> Asetukset.
- Siirry Laskenta-välilehteen. Valitse iteraatioiden valintaruutu. Muuta iteraatioiden enimmäismääräksi 1.
- Napsauta OK sulkeaksesi valintaikkunan.
- Kirjoita 5 soluun A1.
- Syötä 0 soluun B1
- Syötä
=A1+B1
soluun B1 - Kun kirjoitat uusia arvoja A1: ään, B1: n merkintä muistaa vanhan kokonaissumman ja lisää arvon A1: stä.
Tässä on valtava rajoitus. Et voi kirjoittaa arvoja muualle taulukolle! Aina kun syötät arvon tai taulukko lasketaan uudelleen, A1-arvo lisätään B1-arvoon. Täten lyömällä F9 useita kertoja, seuraat B1: n kasvua 5: llä jokaiselle F9: lle.
Turvallisempi tapa tehdä tämä on pienellä tapahtumankäsittelijän makrolla. Sinun on lisättävä tämä koodi Sheet1: n koodiruutuun (olettaen, että työskentelet Sheet1: n kanssa). Tapahtumankäsittelijän koodi olisi seuraava:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = “$A$1” Then Application.EnableEvents = False Range(“B1”).Value = Range(“B1”).Value + Target.Value Application.EnableEvents = True End If End Sub
Tämä koodibitti suoritetaan aina, kun solua vaihdetaan taulukossa. Kohde on erityinen objektimuuttuja, joka kertoo, mikä solu on muutettu. Tapahtumankäsittelijä tarkistaa, mikä solu on juuri vaihdettu. Jos solu oli A1, se lisää arvon A1 arvoon B1. Meidän on kytkettävä pois päältä tapahtumankäsittelijät, kun vaihdamme B1: tä, jotta tapahtumankäsittelijä ei soita itselleen uudelleen.