08. oktober 2003 - 11:08Der er
16 kommentarer og 1 løsning
Oprette semikolon sepereret fil vha. VBA
Hej
Jeg har tidligere brugt denne kode til at oprette en semikolon sepereret fil, mne efter skiftet til XP så virker deet ikke længere. DK version! Det kan ikke bruges at det bliver komma sepereret.
Hos mig laver din kode fine semikolonseparerede filer, så mon ikke det er dine systemindstillinger i Win XP, der er sat til at bruge komma som listeseparator i stedet for semikolon?
Der er ikke noget spændende at kigge på derinde, men hvis jeg går op manuelt og gemmer som CSV fil så kan jeg sagtens få den til at gemme som ; separeret... det virker da lidt mystisk??
Ja det gør den også ved JKrons og det gjorde den også ved mig indtil jeg skiftede til XP - SOM JEG SKREV I SPØRGSMÅLET, men det gør den altså ikke længere. Derfor er det spørgsmål oprettet for at få en løsning på hvordan man så skal komme udover den begrænsning der åbenbart ligger i Excel XP DK med Windows 2000 som styresystem.
Jeg ville være ked at at skulle bruge csv-filer hos en kunde.
Der hersker en del forvirring om hvordan output og input er. Hvis man bruger selve excel til at lave den får dem sine delimiters fra systemindstillinger, hvis man bruger vba er den hardkodet til at bruge komma ud og ind (i de systemer jeg har prøvet win 2000 / xl2000 /xl2002).
Brug en tekstfil istedet. Her kan du selv sætte de delimeters du vil bruge både ind og ud.
Jeg er sådan set ligeglad med hvordan filen bliver oprettet. Faktum er at deres Axapta system forventer at få en fil hvor værdierne er adskildt af Semikolon. Har du et kode eksempel på det andet du skriver?
Sub EksportAsCSV_DK(strFileName As String, rngOmr As Range) Const Delim As String = ";" 'afgrænser (delimiter) Dim y As Long 'tæller Dim x As Long 'tæller Dim strTemp As String 'streng til de enkelte rækker Dim lRows As Long 'antal rækker Dim lCols As Long 'antal kolonner Dim lFno As Long 'fil nummer
lFno = FreeFile lRows = rngOmr.Rows.Count lCols = rngOmr.Columns.Count Open strFileName For Output As #lFno
For x = 1 To lRows strTemp = "" For y = 1 To lCols strTemp = strTemp & rngOmr(x, y).Text If y < lCols Then strTemp = strTemp & Delim Else Print #lFno, strTemp End If Next
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.