Excelin oletusarvoinen tallennustila on ehdoton viite. Kun kaavan soluviittaus on absoluuttinen viittaus , se ei säädä automaattisesti, kun kaava liitetään uuteen paikkaan.
Paras tapa ymmärtää, miten tämä käsite koskee makroja, on kokeilla sitä. Tallenna makro, joka laskee laskentataulukon rivit. (Katso esimerkki kuvasta.)
Esikirjoitettu laskentataulukkosi sisältää kaksi taulukkoa.
Löydät täältä käytetyn mallitietojoukon verkosta .
Tallenna makro seuraavasti:
Varmista, että solu A1 on valittuna.
Valitse Kehittäjä-välilehdeltä Tallenna makro.
Nimeä makro AddTotal.
Valitse tallennuspaikaksi tämä työkirja.
Aloita tallennus napsauttamalla OK.
Tässä vaiheessa Excel tallentaa toimintasi.
Kun Excel tallentaa, valitse solu A16 ja kirjoita soluun Total.
Valitse ensimmäinen tyhjä solu sarakkeesta D (D16) ja kirjoita = COUNTA(D2:D15).
Tämä kaava antaa haarojen lukumäärän sarakkeen D alaosassa. Käytät COUNTA-funktiota, koska haaranumerot tallennetaan tekstinä.
Lopeta makron tallennus napsauttamalla Kehittäjä-välilehdellä Lopeta tallennus.
Jälkisummattu laskentataulukkosi.
Muotoillun laskentataulukon pitäisi näyttää tässä esitetyn kaltaiselta.
Jos haluat nähdä makrosi toiminnassa, poista juuri lisäämäsi rivi yhteensä ja toista makro seuraavasti:
Valitse Kehittäjä-välilehdeltä Makrot.
Etsi ja valitse juuri tallentamasi AddTotal-makro.
Napsauta Suorita-painiketta.
Jos kaikki menee hyvin, makro toistaa toimintasi T:ksi ja antaa pöydällesi loppusumman. Tässä on nyt asiaa. Vaikka kuinka yrität, et saa AddTotal-makroa toimimaan toisessa taulukossa. Miksi? Koska kirjasit sen absoluuttiseksi makroksi.
Ymmärtääksesi, mitä tämä tarkoittaa, tutki taustalla olevaa koodia valitsemalla Makrot Kehittäjä-välilehdeltä. Makro-valintaikkuna tulee näkyviin.
Excel-makro-valintaikkuna.
Valitse AddTotal-makro ja napsauta Muokkaa-painiketta. Visual Basic Editor avautuu ja näyttää koodin, joka kirjoitettiin makron tallennuksen yhteydessä:
Sub AddTotal()
Alue("A16").Valitse
ActiveCell.FormulaR1C1 = "Yhteensä"
Alue("D16").Valitse
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
Lopeta ala
Kiinnitä erityistä huomiota kahteen koodiriviin, jotka valitsevat alueen A16 ja D16. Koska makro tallennettiin absoluuttisessa viitetilassa, Excel tulkitsi aluevalintasi absoluuttisiksi soluviittauksiksi. Toisin sanoen, riippumatta siitä, missä kohdistimesi on työkirjassasi, kun suoritat tallennetun makron, Excel valitsee solun A16 ja sitten solun D16. Seuraavassa osiossa katsot, miltä sama makro näyttää suhteellisessa vertailutilassa tallennettuna.