Excel-formules kopiëren naar een ander werkblad met VBA

Om formules van het ene Excel-werkblad naar het andere te kopiëren met VBA, wijst u het bronbereik toe FormulaR1C1aan een doelbereik van dezelfde grootte. Hierdoor wordt het formulepatroon overgedragen zonder de celopmaak te kopiëren, en relatieve verwijzingen worden aangepast aan de doelcellen. De onderstaande macro gebruikt werkbladnamen, waardoor deze niet afhankelijk is van welk werkblad actief is.

Werkbladbron met cel C2 geselecteerd en de formule =A2*B2 zichtbaar in de formulebalk.
In het voorbeeldwerkblad 'Source' wordt in cel C2 de formule =A2*B2 gebruikt.

Voordat je begint

Gebruik de desktopversie van Excel; Excel voor web kan een werkmap met macro's openen, maar kan geen VBA-macro's maken, uitvoeren of bewerken, zoals uitgelegd in de handleiding van Microsoft voor Excel voor web . Controleer de exacte tabnamen en de bron- en bestemmingsadressen. In dit voorbeeld bevinden de formules zich in Source!C2:C10en worden ze geplaatst in Summary, beginnend bij C2.

In dit voorbeeld wordt ThisWorkbookde werkmap gebruikt waarin de macrocode is opgeslagen. Laat de macro in die werkmap staan, of wijzig de verwijzing naar de werkmap als de code elders is opgeslagen. Werkbladnamen worden geselecteerd uit de Worksheetsverzameling van de werkmap; de naam tussen aanhalingstekens moet exact overeenkomen met het tabblad.

Het tabblad 'Excel Ontwikkelaar' met de knop 'Visual Basic' gemarkeerd boven een werkbladraster.
Open de Visual Basic Editor via het tabblad Ontwikkelaar in Excel.

Formules kopiëren naar een ander werkblad met VBA

Open de Visual Basic Editor via het tabblad Ontwikkelaar in Excel , kies Visual Basic en selecteer vervolgens Invoegen > Module . Plak de volgende procedure in de module:

Sub CopyFormulasToAnotherSheet()
    Dim wb As Workbook
    Dim sourceRange As Range
    Dim targetCell As Range
    Dim targetRange As Range

    Set wb = ThisWorkbook
    Set sourceRange = wb.Worksheets("Source").Range("C2:C10")
    Set targetCell = wb.Worksheets("Summary").Range("C2")
    Set targetRange = targetCell.Resize(sourceRange.Rows.Count, _
                                        sourceRange.Columns.Count)

    targetRange.FormulaR1C1 = sourceRange.FormulaR1C1
End Sub

Wijzig de bereikadressen Source, , en zodat ze overeenkomen met uw werkblad. is de eerste bestemmingscel; zorgt ervoor dat de bestemming dezelfde hoogte en breedte heeft als de bron, wat vereist is voor een toewijzing aan meerdere cellen. Voor een enkele formule stelt u de bron in op één cel, bijvoorbeeld .SummarytargetCellResizeC2

Het codevenster van de Visual Basic Editor toont de werkbladbereiken sourceRange en destRange en een toewijzing FormulaR1C1.
De macro wijst het FormulaR1C1-patroon van het bronbereik toe aan het doelbereik.

Voer de macro uit en sla deze op.

  1. Plaats de cursor ergens CopyFormulasToAnotherSheetin de Visual Basic Editor en druk op F5 . U kunt ook terugkeren naar Excel, Ontwikkelaar > Macro's selecteren , de procedure kiezen en Uitvoeren selecteren .
  2. Controleer de doelcellen op Summary. Bij een bronformule zoals =A2*B2in Source!C2, is het gekopieerde formulepatroon in Summary!C2ook =A2*B2. Als de formule waarden op het bronblad moet blijven lezen, kwalificeer die verwijzingen dan in de bronformule, bijvoorbeeld =Source!A2*Source!B2.
  3. Sla de werkmap op als een Excel-werkmap met macro's ( .xlsm) zodat de VBA-procedure behouden blijft. Als Excel om macrobeveiliging vraagt, voer dan alleen macro's uit die u vertrouwt.
Werkbladoverzicht met cel C2 geselecteerd en de gekopieerde formule =A2*B2 zichtbaar in de formulebalk.
Het bestemmingswerkblad heeft nu hetzelfde relatieve formulepatroon als C2.

Kies de juiste methode voor uw formules.

FormulaR1C1De formulestructuur wordt gekopieerd. Een verwijzing twee kolommen links van de formulecel blijft twee kolommen links in de bestemming; absolute verwijzingen blijven vast staan. Dit is handig als u hetzelfde berekeningspatroon in een overeenkomend bestemmingsbereik wilt hebben. De opmaak wordt niet gekopieerd. Als uw bronbereik constanten of lege cellen bevat, worden deze ook als waarden of lege cellen overgenomen. Gebruik daarom een ​​bereik dat bestaat uit de formules die u wilt kopiëren.

Voor normaal kopiëren in Excel, inclusief formules en opmaak, gebruikt u de Range.Copyvolgende optie met een bestemming:

wb.Worksheets("Source").Range("C2:C10").Copy _
    Destination:=wb.Worksheets("Summary").Range("C2")

Hiermee worden de volledige celinhoud en -opmaak gekopieerd; Excel past relatieve verwijzingen aan zoals bij een standaardkopie. Gebruik deze functie wanneer de bestemming meer dan alleen formules moet ontvangen. Microsoft documenteert zowel de eigenschap FormulaR1C1 als de methode Range.Copy .

Los veelvoorkomende problemen op.

  • “Index buiten bereik”: Controleer of de namen van de werkbladen exact zo gespeld zijn als ze op de tabbladen staan, inclusief spaties.
  • De formule verwijst naar de verkeerde cellen: FormulaR1C1 er worden relatieve verwijzingen naar het bestemmingsblad gebruikt. Voeg een bladnaam toe aan de formule als deze naar het bronblad moet blijven verwijzen.
  • De code gebruikt de verkeerde werkmap: ThisWorkbook er wordt verwezen naar het bestand dat de macro bevat. Als de code zich in een persoonlijke macro-werkmap bevindt, verwijs dan wbin plaats daarvan naar de geopende werkmap op naam.
  • De macro wordt niet weergegeven: controleer of het bestand is opgeslagen als .xlsmeen vertrouwd bestand en of macro's zijn ingeschakeld. De macro-instructies van Microsoft leggen uit hoe u het tabblad Ontwikkelaar inschakelt en een procedure uitvoert.

Wanneer de bron- en bestemmingsnamen, bereiken en het verwijzingsgedrag bewust zijn ingesteld, kan de macro een enkele formule of een heel blok kopiëren zonder werkbladen te selecteren of het klembord te gebruiken.

Laat een reactie achter

XnConvert: Effecten toepassen en afbeeldingsformaten in batches converteren

XnConvert: Effecten toepassen en afbeeldingsformaten in batches converteren

Gebruik XnConvert om effecten toe te passen, foto's te verkleinen en afbeeldingsformaten in batches te converteren. Kies uitvoerinstellingen, bekijk bewerkingen en bescherm uw originelen.

Houd je werkuren en computergebruik bij met ManicTime.

Houd je werkuren en computergebruik bij met ManicTime.

Leer hoe ManicTime applicatiegebruik, actieve en inactieve tijd en documenten bijhoudt, en zet je activiteitengeschiedenis vervolgens om in projectlabels en urenstaten.

Hoe los je de foutmelding "docs.google.com kon geen verbinding maken" in Google Docs op?

Hoe los je de foutmelding "docs.google.com kon geen verbinding maken" in Google Docs op?

Los de foutmelding 'docs.google.com weigert verbinding te maken' in add-ons op door je Google-account, cookies van derden, sitegegevens en Chrome-instellingen te controleren.

PickMeApp: Windows-programma's overzetten met behoud van instellingen

PickMeApp: Windows-programma's overzetten met behoud van instellingen

Verplaats geïnstalleerde Windows-applicaties naar een andere pc met PickMeApp. Leer hoe TAP-pakketten werken, hoe u instellingen vastlegt en wat er mogelijk niet wordt overgezet.

192.168.0.1: Standaard IP-adres van de router en hoe u kunt inloggen

192.168.0.1: Standaard IP-adres van de router en hoe u kunt inloggen

Leer wat 192.168.0.1 betekent, hoe je de inlogpagina van je router opent, je standaardgateway vindt op Windows of iPhone en verbindingsproblemen oplost.

Welke versie van Windows heb ik? Vier snelle manieren om dat te controleren.

Welke versie van Windows heb ik? Vier snelle manieren om dat te controleren.

U kunt uw Windows 11- of 10-versie, -editie, -build en -systeemtype achterhalen met behulp van winver, Instellingen, Systeeminformatie of een eenvoudige opdracht.

Hoe maak je verbinding met een wifi-netwerk in Windows 11?

Hoe maak je verbinding met een wifi-netwerk in Windows 11?

Maak verbinding met wifi in Windows 11 via de snelle instellingen of de instellingen, voeg een verborgen netwerk toe, verwijder opgeslagen verbindingen en los veelvoorkomende verbindingsproblemen op.

Hoe vind je je wifi-wachtwoord in Windows 11?

Hoe vind je je wifi-wachtwoord in Windows 11?

Vind je wifi-wachtwoord in Windows 11 via Instellingen, Opgeslagen netwerken, Opdrachtprompt of Configuratiescherm. Er zijn ook oplossingen voor ontbrekende wachtwoorden.

Hoe verberg je specifieke items in het Configuratiescherm in Windows 10 en 11?

Hoe verberg je specifieke items in het Configuratiescherm in Windows 10 en 11?

Verberg geselecteerde applets in het Configuratiescherm van Windows 10 en 11 met Groepsbeleid, vind de juiste canonieke namen en herstel items wanneer nodig.

Windows 11 opnieuw opstarten: 5 eenvoudige methoden die werken

Windows 11 opnieuw opstarten: 5 eenvoudige methoden die werken

Start Windows 11 opnieuw op via Start, sneltoetsen, het geavanceerde menu of Terminal. Volg vijf eenvoudige methoden en leer wat u moet doen als Windows vastloopt.