Public Sub Hent_FletOgGem() Dim Ordre() As Variant, Ordrelinje() As Variant, Import() As Variant, X As Long, I As Long, Sti As String X = 0 Sti = "c:\Data\" Open Sti & "Ordre.txt" For Input As #1 Do Line Input #1, linje ReDim Preserve Ordre(X) Ordre(X) = Split(linje, ",") X = X + 1 Loop Until EOF(1) Close #1
X = 0 Open Sti & "Ordrelinje.txt" For Input As #1 Do Line Input #1, linje ReDim Preserve Ordrelinje(X) Ordrelinje(X) = Split(linje, ",") X = X + 1 Loop Until EOF(1) Close #1
For I = 1 To UBound(Ordrelinje, 1) For X = 1 To UBound(Ordre, 1) If Ordre(X)(0) = Ordrelinje(I)(0) Then Import(I, 0) = Ordre(X)(0) ' A Import(I, 1) = Ordre(X)(1) ' B Import(I, 2) = Ordre(X)(5) ' F Import(I, 3) = Ordrelinje(X)(2) ' C Import(I, 4) = Ordrelinje(X)(3) ' D Import(I, 5) = Ordrelinje(X)(4) ' E Exit For
End If Next Next
Open Sti & "Import.txt" For Output As #1 For I = 1 To UBound(Import, 1) For X = 0 To UBound(Import, 2) If X <> UBound(Import, 2) Then Print #1, Import(I, X) & ","; Else Print #1, Import(I, X) End If Next Next
Jeg kan næsten gennemskue din kode, men output filen indeholder kun 5 kommaer i 51 rækker.
Jeg mener jeg har ændret de rigtige steder.
Public Sub Hent_FletOgGem() Dim Ordre() As Variant, Ordrelinje() As Variant, Import() As Variant, X As Long, I As Long, Sti As String X = 0 Sti = "H:\Skrivebord\Temp\OK\" Open Sti & "Ordre.csv" For Input As #1 Do Line Input #1, linje ReDim Preserve Ordre(X) Ordre(X) = Split(linje, ",") X = X + 1 Loop Until EOF(1) Close #1
X = 0 Open Sti & "Ordrelinje.csv" For Input As #1 Do Line Input #1, linje ReDim Preserve Ordrelinje(X) Ordrelinje(X) = Split(linje, ",") X = X + 1 Loop Until EOF(1) Close #1
For I = 1 To UBound(Ordrelinje, 1) For X = 1 To UBound(Ordre, 1) If Ordre(X)(0) = Ordrelinje(I)(0) Then Import(I, 0) = Ordre(X)(0) ' A Import(I, 1) = Ordre(X)(1) ' B Import(I, 2) = Ordre(X)(5) ' F Import(I, 3) = Ordre(X)(16) ' Q Import(I, 4) = Ordrelinje(X)(2) ' C Import(I, 5) = Ordrelinje(X)(3) ' D Import(I, 6) = Ordrelinje(X)(4) ' E Exit For
End If Next Next
Open Sti & "Import.txt" For Output As #1 For I = 1 To UBound(Import, 1) For X = 0 To UBound(Import, 2) If X <> UBound(Import, 2) Then Print #1, Import(I, X) & ","; Else Print #1, Import(I, X) End If Next Next
Public Sub Hent_FletOgGem() Dim Ordre() As Variant, Ordrelinje() As Variant, Import() As Variant, X As Long, I As Long, Sti As String Dim OK As Boolean X = 0 Sti = "H:\Skrivebord\Temp\OK\" Open Sti & "Ordre.csv" For Input As #1 Do Line Input #1, linje ReDim Preserve Ordre(X) Ordre(X) = Split(linje, ",") X = X + 1 Loop Until EOF(1) Close #1
X = 0 Open Sti & "Ordrelinje.csv" For Input As #1 Do Line Input #1, linje ReDim Preserve Ordrelinje(X) Ordrelinje(X) = Split(linje, ",") X = X + 1 Loop Until EOF(1) Close #1
For I = 1 To UBound(Ordrelinje, 1) For X = 1 To UBound(Ordre, 1) If Ordre(X)(0) = Ordrelinje(I)(0) Then Import(I, 0) = Ordre(X)(0) ' A Import(I, 1) = Ordre(X)(1) ' B Import(I, 2) = Ordre(X)(5) ' F Import(I, 3) = Ordre(X)(16) ' Q Import(I, 4) = Ordrelinje(X)(2) ' C Import(I, 5) = Ordrelinje(X)(3) ' D Import(I, 6) = Ordrelinje(X)(4) ' E OK = True Exit For
End If Next If Not OK Then Import(I, 0) = "No Match"
Next
Open Sti & "Import.txt" For Output As #1 For I = 1 To UBound(Import, 1) For X = 0 To UBound(Import, 2) If X <> UBound(Import, 2) Then Print #1, Import(I, X) & ","; Else Print #1, Import(I, X) End If Next Next
No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,, No Match,,,,,,,,,,,,,,,,
For I = 1 To UBound(Ordrelinje, 1) OK = False For X = 1 To UBound(Ordre, 1) If Ordre(X)(0) = Ordrelinje(I)(0) Then Import(I, 0) = Ordre(X)(0) ' A Import(I, 1) = Ordre(X)(1) ' B Import(I, 2) = Ordre(X)(5) ' F Import(I, 3) = Ordre(X)(16) ' Q Import(I, 4) = Ordrelinje(X)(2) ' C Import(I, 5) = Ordrelinje(X)(3) ' D Import(I, 6) = Ordrelinje(X)(4) ' E OK = True Exit For
End If Next If Not OK Then Import(I, 0) = "No Match"
For I = 1 To UBound(Ordrelinje, 1) OK = False For X = 1 To UBound(Ordre, 1) If IsEmpty(Ordrelinje(I)(2)) Then Exit For ' hvis tom gås til næste Ordrelinje If Ordre(X)(0) = Ordrelinje(I)(0) Then Import(I, 0) = Ordre(X)(0) ' A Import(I, 1) = Ordre(X)(1) ' B Import(I, 2) = Ordre(X)(5) ' F Import(I, 3) = Ordre(X)(16) ' Q Import(I, 4) = Ordrelinje(I)(2) ' C Import(I, 5) = Ordrelinje(I)(3) ' D Import(I, 6) = Ordrelinje(I)(4) ' E OK = True Exit For
End If Next If Not OK Then Import(I, 0) = "No Match"
ja, men det samme gør sig gældende i Ordrelinje, men jeg kan intet se når jeg åbner filen. her er et eksempel: Kan se at kolonne 3, indmellem indeholder et ekstra mellemrum
"750";"1";"1";"Diverse drejning af ,400";"0,00";"0,00";"";"2";"";"" "752";"1";"2 ";"CNC drejning af 10 Stk. Stormglas samt fod, aksel. "753";"1";"2";"CNC drejning af RF-Pind";"60,00";"18,00";"0,00";"0,00";"";"1";"";"" "753";"2";"2 ";"Afkortning og afgratning af Rustfri aksel "753";"3";"";"Begge Incl Materiale AISI 316";"";"";"0,00";"0,00";"";"";"";""
Jeg vil gerne tilføje en "-" & et fortløbende nr., bagved ved hver værdi i kolonne 2,
Her er output-filen Kolonne 2 = "701" "984";"701";"Preben Christensen";"39729";"2";"Ring for emblem i Alu.";"150"; "984";"701";"Preben Christensen";"39729";"2";"Skive for emblem i Alu.";"150"; "984";"701";"Preben Christensen";"39729";"2";"Ring for emblem i Messing";"150"; "984";"701";"Preben Christensen";"39729";"2";"Skive for emblem i Messing";"150"; "984";"701";"Preben Christensen";"39729";"2";"Ring for emblem i Rustfri 304";"10"; "984";"701";"Preben Christensen";"39729";"2";"Skive for emblem i Rustfri 304";"10";
J = 1 ' Husk at dim J as integer For I = 1 To UBound(Ordrelinje, 1) OK = False For X = 1 To UBound(Ordre, 1) If Ordre(X)(0) = Ordrelinje(I)(0) Then '************************** ny *************** If Ordre(X)(1) = Ordre(X - 1)(1) And I > 1 Then J = J + 1 Else J = 1 End If ' **************************ny slut Import(I, 0) = Ordre(X)(0) ' A Import(I, 1) = Ordre(X)(1) & "-" & J ' B ' Tilføjet til enden Import(I, 2) = Ordre(X)(5) ' F Import(I, 3) = Format(Ordre(X)(16), DD - MM - YYYY) ' Q Import(I, 4) = Ordrelinje(I)(2) ' C Import(I, 5) = Ordrelinje(I)(3) ' D Import(I, 6) = Ordrelinje(I)(4) ' E Exit For End If Next Next
Synes godt om
Ny brugerNybegynder
Din løsning...
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.