Peter B
Gebruiker
- Lid geworden
- 8 feb 2007
- Berichten
- 672
Tsja. Ik wist even niet echt een betere titel te verzinnen.
Ik ben mij (verder) aan het verdiepen in arrays. Met dank aan (o.a.) de site van snb begin ik het idee te krijgen er steeds meer van te begrijpen. Maar nu kom ik kennelijk bij een stukje wat voor mij "hogere wiskunde" is, ofwel ... Ik begrijp het niet. En dus de vraag of iemand mij kan helpen.
De situatie
Ik lees een groot bestand in (platte tekst). In dit bestand zitten producten met steeds herhalende regels. Deze zijn herkenbaar aan de regelnaam. Ik lees het bestand in Excel in een array. Vervolgens laat ik er een aantal bewerkingen op los. In eerste instantie deed ik dit door door de array heen te loopen. Maar dat kan slimmer. In het bestand moet een aantal regels volledig worden vervangen. Dit is relatief eenvoudig met:
Dat werkt mooi (en snel)
Het probleem
Ik loop echter vast op het volgende. Ik wil per product een regel vervangen door een regel met een teller. Dit kan niet met Substitute (want dat is vervangen met één string). Ik dacht dit te doen door te filteren op de specifieke regel en door deze gefilterde lijst heen te loopen (dat scheelt het scannen van heel veel onnodige regels). Echter ... Het werkt niet helemaal als de werkbladfunctie om te filteren, waarbij je het filter weer uit kunt zetten (en dus het hele bestand weer ziet).
De vraag
Zie ik iets over het hoofd? Bestaat er wel een ontfilterfunctie? Zo ja, hoe doe ik dit? Zo nee, hoe kan ik dit anders (handig & snel) oplossen?
Ik denk niet dat een voorbeeldbestand veel zin heeft, maar indien gewenst wil ik deze met alle plezier maken. De structuur is ongeveer als volgt (de productkenmerken variëren in aantal tussen de 50 en 150. Omdat de productnaam niet uniek is wil ik deze voorzien van een volgnummer:
Ik ben mij (verder) aan het verdiepen in arrays. Met dank aan (o.a.) de site van snb begin ik het idee te krijgen er steeds meer van te begrijpen. Maar nu kom ik kennelijk bij een stukje wat voor mij "hogere wiskunde" is, ofwel ... Ik begrijp het niet. En dus de vraag of iemand mij kan helpen.
De situatie
Ik lees een groot bestand in (platte tekst). In dit bestand zitten producten met steeds herhalende regels. Deze zijn herkenbaar aan de regelnaam. Ik lees het bestand in Excel in een array. Vervolgens laat ik er een aantal bewerkingen op los. In eerste instantie deed ik dit door door de array heen te loopen. Maar dat kan slimmer. In het bestand moet een aantal regels volledig worden vervangen. Dit is relatief eenvoudig met:
Code:
arrInput = Application.Substitute(arrInput, "~Te vervangen regel1~", "~Vervangende tekst1~")
arrInput = Application.Substitute(arrInput, "~Te vervangen regel2~", "~Vervangende tekst2~")
Het probleem
Ik loop echter vast op het volgende. Ik wil per product een regel vervangen door een regel met een teller. Dit kan niet met Substitute (want dat is vervangen met één string). Ik dacht dit te doen door te filteren op de specifieke regel en door deze gefilterde lijst heen te loopen (dat scheelt het scannen van heel veel onnodige regels). Echter ... Het werkt niet helemaal als de werkbladfunctie om te filteren, waarbij je het filter weer uit kunt zetten (en dus het hele bestand weer ziet).
De vraag
Zie ik iets over het hoofd? Bestaat er wel een ontfilterfunctie? Zo ja, hoe doe ik dit? Zo nee, hoe kan ik dit anders (handig & snel) oplossen?
Ik denk niet dat een voorbeeldbestand veel zin heeft, maar indien gewenst wil ik deze met alle plezier maken. De structuur is ongeveer als volgt (de productkenmerken variëren in aantal tussen de 50 en 150. Omdat de productnaam niet uniek is wil ik deze voorzien van een volgnummer:
Code:
Header
Productnaam
Productkenmerk1 Omschrijving
Productkenmerk2 Omschrijving
Productnaam
Productkenmerk1 Omschrijving
Productkenmerk2 Omschrijving
Productkenmerk3 Omschrijving
Productkenmerk4 Omschrijving
etc.