El mode d'enregistrament predeterminat d'Excel és una referència absoluta. Quan una referència de cel·la en una fórmula és una referència absoluta , no s'ajusta automàticament quan la fórmula s'enganxa a una ubicació nova.
La millor manera d'entendre com s'aplica aquest concepte a les macros és provar-lo. Enregistreu una macro que compta les files d'un full de treball. (Vegeu la figura per a un exemple).
El vostre full de treball pretotalitzat que conté dues taules.
Podeu trobar el conjunt de dades de mostra utilitzat aquí en línia .
Seguiu aquests passos per gravar la macro:
Assegureu-vos que la cel·la A1 estigui seleccionada.
A la pestanya Desenvolupador, seleccioneu Enregistrar macro.
Anomena la macro AddTotal.
Trieu aquest llibre de treball per a la ubicació de desar.
Feu clic a D'acord per començar a gravar.
En aquest punt, Excel està enregistrant les vostres accions.
Mentre l'Excel està gravant, seleccioneu la cel·la A16 i escriviu Total a la cel·la.
Seleccioneu la primera cel·la buida a la columna D (D16) i escriviu = COUNTA(D2:D15).
Aquesta fórmula proporciona un recompte de números de branca a la part inferior de la columna D. Utilitzeu la funció COUNTA perquè els números de branca s'emmagatzemen com a text.
Feu clic a Atura la gravació a la pestanya Desenvolupador per aturar l'enregistrament de la macro.
El vostre full de treball posterior al total.
El full de treball amb format hauria de semblar a la que es mostra aquí.
Per veure la vostra macro en acció, suprimiu la fila Total que acabeu d'afegir i reproduïu la macro seguint aquests passos:
A la pestanya Desenvolupador, seleccioneu Macros.
Cerqueu i seleccioneu la macro AddTotal que acabeu d'enregistrar.
Feu clic al botó Executar.
Si tot va bé, la macro reprodueix les teves accions a una T i dóna un total a la teva taula. Ara aquí està la cosa. Per molt que ho intenteu, no podeu fer que la macro AddTotal funcioni a la segona taula. Per què? Perquè l'has gravat com a macro absoluta.
Per entendre què significa això, examineu el codi subjacent seleccionant Macros a la pestanya Desenvolupador. Apareix el quadre de diàleg Macro.
El quadre de diàleg Macro d'Excel.
Seleccioneu la macro AddTotal i feu clic al botó Edita. Visual Basic Editor s'obre i mostra el codi que es va escriure quan vau gravar la macro:
Sub AddTotal()
Interval("A16").Seleccioneu
ActiveCell.FormulaR1C1 = "Total"
Interval ("D16").Seleccioneu
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
End Sub
Presteu especial atenció a les dues línies de codi que seleccionen el rang A16 i el rang D16. Com que la macro es va registrar en mode de referència absoluta, Excel va interpretar la vostra selecció d'interval com a referències de cel·la absolutes. En altres paraules, sense importar on estigui el cursor al llibre de treball, quan executeu la macro gravada, Excel seleccionarà la cel·la A16 i després la cel·la D16. A la secció següent, feu una ullada a com es veu la mateixa macro quan s'enregistra en mode de referència relativa.