• 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.

Replace-methode i.c.m. wildcards

Status
Niet open voor verdere reacties.

Conseclusie

Gebruiker
Lid geworden
14 feb 2012
Berichten
358
Ik zit wat te stoeien met het gebruik van wildcards bij de Replace-methode.
Een concreet voorbeeld: In A1 tm A3 staat resp. Test1, Test11 en Test111.
Ik wil alle strings die beginnen met "Test" en gevolgd worden door (precies) 2 cijfers vervangen door "". (in dit geval zou dat dus alleen A2 zijn)
Ik hoopte dat dit zou lukken met:
Code:
Range("A1:A3").Replace "Test##", "", xlPart
, maar helaas; er wijzigt niets....

Het gebruik van wildcards lijkt wel degelijk mogelijk. Gebruik ik namelijk:
Code:
Range("A1:A3").Replace "Test*", "", xlPart
, dan worden alle 3 waardes vervangen.

Is het zo dat # hier niet geaccepteerd wordt, maar * wèl??

NB: het gaat me expliciet om de Replace-METHODE. Alle velden één voor één langslopen met de Like-operator lukt prima, maar is te tijdrovend bij duizenden cellen.
 
Maak er eens dit van:
Code:
Range("A1:A3").Replace "Test??", "", xlPart
 
Dat werkt inderdaad als het om willekeurige tekens gaat, maar het gaat mij erom dat het cijfers zijn.
"Testxx" zou hiermee ook vervangen worden.
 
De enige wildcard tekens zijn * en ? dus zal je het in jouw geval toch in een loopje moeten doen.
Netjes geschreven hoeft dat niet traag te zijn.
 
Met lusje
Code:
Sub VenA()
  ar = Cells(1).CurrentRegion
  For j = 1 To UBound(ar)
    If Left(ar(j, 1), 4) = "Test" And Len(ar(j, 1)) = 6 And IsNumeric(Right(ar(j, 1), 2)) Then ar(j, 1) = ""
  Next j
  Cells(1).CurrentRegion = ar
End Sub
 
Ok, ik was in de veronderstelling dat # ook gewoon bruikbaar zou zijn in deze context. Bij Like werkt # immers hetzelfde als ?...
Maar goed; ik hou het wel bij een loopje.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan