Relatieve werkblad Referenties

Stel je hebt een werkmap met drie werkbladen, Blad1, Blad2 en Blad3. In kolom A1 van werkblad Blad2 je hebt de formule = Blad1! A1. Bij het kopiëren die formule van Blad2 naar cel A1 van Sheet3, de formule verwijst nog Sheet1. Hoe kan dat, hoewel? Waarom niet in Excel aanpassen van de referentie-sheet, zoals het hoort de cel referenties?

Net als benoemde bereiken, Excel behandelt werkblad namen als absoluut. Elk werkblad object is onafhankelijk van alle andere werkbladen in de werkmap. Wanneer u een formule die een blad verwijzing bevat plakken, is dat verwijzing vel in wat wordt geplakt ongewijzigd gelaten.

Er zijn een paar dingen die je kunt doen. Een daarvan is de formule referentie eenvoudig wijzigen nadat deze is geplakt zodat deze verwijst de juiste plaat. Als je veel van hen te veranderen, dan kunt u alle formules in het doel werkblad te selecteren (F5 | Speciaal | Formules) en gebruik vervolgens Zoeken en vervangen om de oorspronkelijke naam van het werkblad (Blad1) met de juiste naam van het werkblad te vervangen (Blad2) .

Als uw verwijzingen behoeften zijn niet complex, dan kunt u een macro benadering gebruiken. Bijvoorbeeld, als je een formule in een bepaalde cel te verwijzen naar een cel op het blad voorafgaand aan het huidige blad, dan kunt u dat doen door macro vrij gemakkelijk. Beschouw de volgende macro:

Functie PrevSheet (rCell als Waaier)
Application.Volatile
Dim i As Integer
i = rCell.Cells (1) .Parent.Index
PrevSheet = Sheets (i - 1) .Range (rCell.Address)
End Function

De macro kijkt naar het huidige werkblad en dan cijfers uit welk werkblad is voordat het. De referentie wordt dan gemaakt voor dat werkblad. Zodra u de PrevSheet macro hebt gemaakt, hier is een manier waarop de functie kan worden gebruikt in een cel:

= PrevSheet (A1)

Dit geeft de waarde van cel A1 van het vorige werkblad. Als u Blad1, Blad2 en Blad3, en je deze formule op Sheet3 gebruiken, dan is het resultaat de waarde van Blad2! A1. Als de vorige plaat is het eerste blad van de werkmap of het is niet een werkblad, dan is de functie een #Waarde fout.

Als u later deze formule kopiëren naar een ander blad (zeg Blad 5), dan trekt de waarde ten opzichte van de nieuwe locatie, wat betekent dat het trekt de waarde van Blad4! A1.

U kunt ook een blad naamvallen en de functie werkt prima:

= PrevSheet (Sheet3! A5)

Deze versie zal altijd Blad2! A5 terug omdat sheet2 is het vorige blad van Sheet3.

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (3088) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) vindt u hier: Relatieve werkblad Referenties.