Ringkirjaviidete kasutamine meie eelisele - Exceli näpunäited

Michelle küsib,

Ma arvan, et olen ümmarguse viitega õigel teel. Siin on minu probleem. Mul on kaks lahtrit A1=5ja B1=5. Mida ma tahan teha, on lasta B1-l 5 meelde jätta ja siis ma tahan lisada A1-le uue väärtuse, ütleme, et A1 on nüüd võrdne 10. Kas mul võib olla B1-valem, mis jätab meelde 5, kuid lisab ka 10? Nii et nüüd B1=15?

Tavaliselt on ümmargused viited halb asi, kuid mõnikord saab neid kasutada meie kasuks. Siin on mitte-makro viis teha seda, mida soovite teha. See töötab ainult teatud olukordades.

  • Valige Exceli menüüst Tööriistad> Valikud.
  • Minge vahekaardile Arvutamine. Märkige ruut Kordused. Muutke maksimaalne korduste arv väärtuseks 1.
  • Suvandite dialoogiboksi sulgemiseks klõpsake nuppu OK.
  • Lahtrisse A1 sisestage 5.
  • Lahtrisse B1 sisestage 0
  • Sisestage =A1+B1lahtrisse B1
  • Nüüd, kui sisestate A1-sse uued väärtused, mäletab B1-sisestus vana summa ja lisab väärtuse A1-st.

Siin on SUUR piirang. Te ei saa lehele mujale sisestada väärtusi! Iga kord, kui sisestate väärtuse või kui leht arvutatakse ümber, lisatakse väärtus A1-s väärtusele B1. Seega, kui tabate F9 mitu korda, saate jälgida, et B1 suureneb iga F9 puhul 5 võrra.

Kindlam viis seda teha on väikese sündmuste käitleja makro abil. Peate selle koodi lisama lehe1 koodipaanile (eeldades, et töötate lehega1). Sündmuse käitleja kood oleks järgmine:

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

Seda koodibitti käitatakse igal ajal, kui lahtrit lehel muudetakse. Sihtmärk on spetsiaalne objekti muutuja, mis ütleb, millist lahtrit muudeti. Sündmuste käitleja kontrollib, millist lahtrit just muudeti. Kui lahter oli A1, lisab see väärtuse A1 ja B1. B1 muutmise ajal peame sündmuste käitlejad välja lülitama, et sündmuste käitleja ennast enam ei kutsuks.

Huvitavad Artiklid...