• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Zoek-vervang VBA code inkorten

Status
Niet open voor verdere reacties.

Yasmin

Gebruiker
Lid geworden
22 mei 2004
Berichten
179
Beste Excellers,

Ik heb een macro in mijn werkblad met o.a. onderstaande code die volgens mij veel korter kan.
Wie kan mij hierbij helpen?

[HTMLColumns("K:K").Select
Selection.Replace What:="1/1/2021", Replacement:="1/4/2021", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("K:K").Select
Selection.Replace What:="1/2/2021", Replacement:="1/4/2021", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="1/3/2021", Replacement:="1/4/2021", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
][/HTML]

Bij voorbaat dank.
 

Bijlagen

  • Zoek-vervang code inkorten.docx
    12,1 KB · Weergaven: 15
Korter kan zo.
Code:
Sub GG2()

With Range("K:K")

    For i = 1 To 3
    .Replace What:="1/" & i & "/2021", Replacement:="1/4/2021", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    Next i

End With

End Sub

deze vervangt 1,2 en 3 januari voor 4 januari.
Of moet 1 januari, 1 februari en 1 maart vervangen worden door 1 april?
 
Heel veel korter wordt het niet; jouw code kan ongeveer net zo kort. En het verbaast me dat het voorbeeld werkt; bij mij niet vanwege de Amerikaanse datumnotatie. Tenzij je de datum als tekst hebt gebruikt. Maar deze twee varianten zijn net zo veel code, en doen dus hetzelfde:
Code:
    With Columns("K:K")
        .Replace What:="1/1/2021", Replacement:="4/1/2021"
        .Replace What:="2/1/2021", Replacement:="4/1/2021"
        .Replace What:="3/1/2021", Replacement:="4/1/2021"
    End With

Code:
    With Range("K:K")
        For i = 1 To 3
            .Replace What:=i & "/1/2021", Replacement:="4/1/2021"
        Next i
    End With
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan