"lege" velden leegmaken

Status
Niet open voor verdere reacties.
Je denkfout zit al in de 5e regel.

Een aaneengesloten gebied met formules kan door vastlegging van de waarden veranderen in niet-aaneengesloten gebied.
Vergelijk de eerste Msgbox met de tweede.

Code:
Sub Testleegmaken()
    Cells.Clear
    Cells(2, 2) = 1
    Cells(4, 2) = 2
    Cells(6, 2) = 3
    
    Cells(2, 3).Resize(5) = "=RC[-1]&"""""
    MsgBox Cells(2, 3).CurrentRegion.Address     ' aaneengesloten
    
    Cells(2, 3).Resize(5) = Cells(2, 3).Resize(5).Value
    MsgBox Cells(2, 3).CurrentRegion.Address     '    losse areas
End Sub
 
Laatst bewerkt:
snb bedankt voor je suggestie. Ik kende resize niet, ga het bestuderen. Misschien geeft dat een oplossing.
Bedankt.
 
Ik heb geen oplossing geboden. Er is nl. geen probleem.
De code illustreert slechts jouw denkfout.

Nog duidelijker zó:

Code:
Sub M_snb()
    ActiveWindow.DisplayFormulas = True

    Cells.Clear
    Cells(2, 2) = 1
    Cells(4, 2) = 2
    Cells(6, 2) = 3
    
    Cells(2, 3).Resize(5) = "=RC[-1]&"""""
    Cells(2, 3).CurrentRegion.Select
    MsgBox Cells(2, 3).CurrentRegion.Address     ' aaneengesloten
    
    Cells(2, 3).Resize(5) = Cells(2, 3).Resize(5).Value
    Cells(2, 3).CurrentRegion.Select
    MsgBox Cells(2, 3).CurrentRegion.Address     '    losse areas
End Sub
 
Laatst bewerkt:
Geachte snb en octafish

Ik ben er uit, voor mij is het opgelost.
Het punt van snb is m.i. dat ik probeerde de velden met copy/paste of replace om te zetten van formules naar waarden. Maar dat kan ook gewoon door elk veld te vervangen door zijn waarde met .value.
Ik werd even van de wijs gebracht door het gebruik van resize maar daar gaat het niet om. Ik wist niet dat je een heel bereik in één keer kon bewerken met een formule.
En ik had er niet bij stil gestaan dat je .value kunt gebruiken ipv kopieren en vervangen.

Mijn oorspronkelijke code wordt nu daardoor:
Code:
Sub TestleegmakenNieuw()
Cells.Clear
Cells(2, 2) = 1: Cells(4, 2) = 2: Cells(6, 2) = 3

For Rij = 2 To 6
Cells(Rij, 3).FormulaR1C1 = "=RC[-1]&"""""
Next Rij

Range(Cells(2, 3), Cells(6, 3)) = Range(Cells(2, 3), Cells(6, 3)).Value

Cells(2, 3).Select
Selection.End(xlDown).Select
'Selectie gaat naar rij 4, want veld C3 is leeg

End Sub


De vraag over de werking van de replace-opdracht is hiermee niet opgelost maar die is voor mij niet erg relevant meer.

Nogmaals snb en octafish en alle overige meedenkers hartelijk dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan