Ierakstot jūsu darbības, programma Excel parasti ieraksta absolūtas atsauces uz šūnām. (Šis ir noklusējuma ierakstīšanas režīms.) Taču diezgan bieži tas ir nepareizs ierakstīšanas režīms. Ja izmantojat absolūto ierakstīšanas režīmu, programma Excel ieraksta faktiskās šūnu atsauces. Ja izmantojat relatīvo ierakstīšanu, programma Excel ieraksta relatīvas atsauces uz šūnām. Turpiniet lasīt, lai redzētu atšķirību.
Ierakstīšana absolūtā režīmā
Veiciet šīs darbības, lai ierakstītu vienkāršu makro absolūtā režīmā. Šis makro vienkārši ievada trīs mēnešu nosaukumus darblapā:
Pārliecinieties, vai poga Izstrādātājs → Kods → Izmantot relatīvās atsauces nav iezīmēta, un pēc tam izvēlieties Izstrādātājs → Kods → Ierakstīt makro.
Ierakstiet Absolute kā šī makro nosaukumu.
Noklikšķiniet uz Labi, lai sāktu ierakstīšanu.
Aktivizējiet šūnu B1 un ierakstiet šajā šūnā Jan.
Pārejiet uz šūnu C1 un ierakstiet Feb.
Pārvietojieties uz šūnu D1 un ierakstiet Mar.
Noklikšķiniet uz šūnas B1, lai to vēlreiz aktivizētu.
Apturiet makro ierakstītāju.
Nospiediet Alt+F11, lai aktivizētu VBE.
Pārbaudiet Module1 moduli.
Excel ģenerē šādu kodu:
Subabsolūtais()
'
Absolūts makro
'
Diapazons (“B1”). Atlasiet
ActiveCell.FormulaR1C1 = "Jan"
Diapazons (“C1”). Atlasiet
ActiveCell.FormulaR1C1 = "februāris"
Diapazons (“D1”). Atlasiet
ActiveCell.FormulaR1C1 = “Mar”
Diapazons (“B1”). Atlasiet
Beigu apakš
Kad tas tiek izpildīts, šis makro atlasa šūnu B1 un ievieto trīs mēnešu nosaukumus diapazonā B1:D1. Pēc tam makro atkārtoti aktivizē šūnu B1.
Šīs pašas darbības notiek neatkarīgi no tā, kura šūna ir aktīva, izpildot makro. Makro, kas ierakstīts, izmantojot absolūtās atsauces, vienmēr rada tādus pašus rezultātus, kad tas tiek izpildīts. Šajā gadījumā makro vienmēr ievada pirmo trīs mēnešu nosaukumus aktīvās darblapas diapazonā B1:D1.
Ierakstīšana relatīvā režīmā
Dažos gadījumos vēlaties, lai ierakstītais makro nosacīti darbotos ar šūnu atrašanās vietām . Iespējams, vēlēsities, lai makro sāktu ievadīt mēneša nosaukumus aktīvajā šūnā. Šādā gadījumā jums ir jāizmanto relatīvais ieraksts.
Varat mainīt veidu, kādā Excel reģistrē jūsu darbības, cilnes Izstrādātājs grupā Kods noklikšķinot uz pogas Izmantot relatīvās atsauces. Šī poga ir pārslēgšanas poga. Ja poga ir izcelta citā krāsā, ierakstīšanas režīms ir relatīvs. Kad poga parādās normāli, jūs ierakstāt absolūtā režīmā.
Ierakstīšanas metodi var mainīt jebkurā laikā, pat ierakstīšanas vidū.
Lai redzētu, kā darbojas relatīvā režīma ierakstīšana, izdzēsiet diapazona B1:D1 saturu un pēc tam veiciet šādas darbības:
Aktivizējiet šūnu B1.
Izvēlieties Izstrādātājs → Kods → Ierakstīt makro.
Nosauciet šo makro Relatīvais.
Noklikšķiniet uz Labi, lai sāktu ierakstīšanu.
Noklikšķiniet uz pogas Izmantot relatīvās atsauces, lai mainītu ierakstīšanas režīmu uz relatīvo.
Noklikšķinot uz šīs pogas, tā mainās uz citu krāsu no pārējās lentes.
Šūnā B1 ierakstiet Jan.
Pārejiet uz šūnu C1 un ierakstiet Feb.
Pārvietojieties uz šūnu D1 un ierakstiet Mar.
Atlasiet šūnu B1.
Apturiet makro ierakstītāju.
Ņemiet vērā, ka šī procedūra nedaudz atšķiras no iepriekšējā piemēra. Šajā piemērā jūs aktivizējat sākuma šūnu, pirms sākat ierakstīšanu. Šis ir svarīgs solis, ierakstot makro, kas kā bāzi izmanto aktīvo šūnu.
Šis makro vienmēr sāk teksta ievadi aktīvajā šūnā. Pamēģini. Pārvietojiet šūnas rādītāju uz jebkuru šūnu un pēc tam izpildiet makro Relatīvais. Mēnešu nosaukumi vienmēr tiek ievadīti, sākot no aktīvās šūnas.
Ja ierakstīšanas režīms ir iestatīts uz relatīvu, Excel ģenerētais kods ievērojami atšķiras no koda, kas ģenerēts absolūtajā režīmā:
Pakārtotais radinieks()
'
'Relatīvs makro
'
ActiveCell.FormulaR1C1 = "Jan"
ActiveCell.Offset(0, 1).Diapazons(“A1”).Atlasiet
ActiveCell.FormulaR1C1 = "februāris"
ActiveCell.Offset(0, 1).Diapazons(“A1”).Atlasiet
ActiveCell.FormulaR1C1 = “Mar”
ActiveCell.Offset(0, -2).Diapazons(“A1”).Atlasiet
Beigu apakš
Lai pārbaudītu šo makro, aktivizējiet jebkuru šūnu, izņemot B1. Mēnešu nosaukumi tiek ievadīti trīs šūnās, sākot ar šūnu, kuru aktivizējāt.
Ņemiet vērā, ka makro ierakstītāja ģenerētais kods attiecas uz šūnu A1. Tas var šķist dīvaini, jo makro ierakstīšanas laikā jūs nekad neizmantojāt šūnu A1. Tas ir vienkārši makro ierakstītāja darbības blakusprodukts.