Vertaling carriage return

Status
Niet open voor verdere reacties.

asmeets

Gebruiker
Lid geworden
9 feb 2007
Berichten
47
Hallo allemaal,

Ik heb een allerprachtigste VBA/macro gemaakt die een database benaderd en het resultaat van een query op een specifiek tabblad in excel plaatst. Na het plaatsen wordt netjes de opmaak geregeld en ziet het er ' bijna' perfect uit.

Bijna omdat bij het plaatsen van grote stukken tekst uit een van de velden van de query de carriage return of de line feed (ik haal deze kennis op uit een ver verleden, dus ik weet niet zeker welke van de twee het is ) niet netjes verwerkt wordt. In plaats hiervan wordt een symbool geplaatst.

Omdat ik vermoed dat dit met de gebruikte codepage te maken heeft en ik hier niets aan kan veranderen wil het teken simpelweg vervangen door de juiste ascii waarde die de cr of de lf heeft. Ik ben op zoek naar de methode die dit kan, maar kan hem in de help niet vinden.

Wie o wie kan me helpen.:rolleyes:
 
Asmeets,

Ik heb nog niet helemaal scherp wat je precies bedoelt, maar wellicht dat je gebruik kunt maken van het testen van het betreffende teken met de functie Asc. Deze geeft de ascii-waarde van een karakter.
Daarna kun je zeggen als asc(teken) = ... then chr(10)
 
Je hebt ook nog een aardige kans dat alles als een c-string verwerkt wordt. Dan moet je dus een asc(0) plaatsen.
Grijze massa denkt:
CR = 13
LF = 10

Dus eerst maar eens uitzoeken wat er in die strings staat en dan proberen wat werkt.
 
Asmeets,

Ik heb nog niet helemaal scherp wat je precies bedoelt, maar wellicht dat je gebruik kunt maken van het testen van het betreffende teken met de functie Asc. Deze geeft de ascii-waarde van een karakter.
Daarna kun je zeggen als asc(teken) = ... then chr(10)

In plaats van de CR of de LF wordt onderstaand teken in de tekst geplaatst:



De opmaak lijkt verder goed te zijn. Ik wil dit teken niet zichtbaar laten zijn voor de gebruiker. Ik hoop dat dit e.e.a. verduidelijkt.
 
hoi

het is code 127

misschien heb je daar wat aan

groet sylvester
 
Laatst bewerkt:
Problem solved

Het bleek (via een hex editor vastgesteld) dat beide ascii karakters 013 en 010 achter elkaar in de tekst voorkwamen. Toepassing van onderstaande functie loste het probleem op. Alleen 010 moest blijven staan

Worksheets("Output").Columns(Column_cnt).Replace What:=Chr(013), Replacement:="", _ SearchOrder:=xlByColumns, MatchCase:=True
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan