Vraag & Antwoord

Programmeren

ASCII-file maken van excelsheet

3 antwoorden
  • Het is misschien een beetje een rare vraag maar ik het het volgende: Ik heb een excel-sheet met daarin 2 kolommen 1 met tekst en 1 met cijfers. Nu is het de bedoeling om van deze excelsheet een ascii-file te maken die aan een vast bepaalde opmaakkenmerken voldoet bv positie 1-20=bijv gegevens kolom x; positie 21-50= kolom y; ..... Kan dit op een of andere manier geprogrammeerd worden via een macro of maak ik het dan te ingewikkeld?
  • Ik geloof niet dat je in Excel een kolom kan dimensioneren (vast aantal tekens) en vervolgens op vaste breedte kan exporteren, dus dan ben je denk ik sowieso op een macro aangewezen. Je kan in VBA een textfile outputten met [code:1:f0f9d34a38] Open "C:\test.txt" For Output As #1 Print #1, "tekstregel" Print #1, "tekstregel" Close #1 [/code:1:f0f9d34a38] Om een kolom op een vaste breedte te zetten (van voorloopspaties voorzien) kun je een While-loop combineren met de functie Len(): [code:1:f0f9d34a38] var1 = Cells(1, 1) ' waarde van A1 in variabele zetten Do While Len(var1) < 20 var1 = " " & var1 Loop var = Cells(1, 2) ' waarde van B1 in variabele zetten Do While Len(var2) < 30 var2 = " " & var2 Loop Print #1, var1 & var2 [/code:1:f0f9d34a38] Dan is denk ik ook wel duidelijk hoe je volgspaties bij een tekstkolom moet doen. Je bepaalt of een waarde numeriek is met de functie IsNumeric: If IsNumeric(var1) Then ' routine om voorloopspaties te zetten Else ' routine om volgspaties te zetten End If
  • Heeft VBA geen Space() of String() functie? In dat geval kan je namelijk ook op volgende wijze padden met een spatie. [code:1:0140d00f3a] ' lengte 20 paddedvalue = Right(Space(20) & cellvalue, 20) [/code:1:0140d00f3a]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.