< návrat zpět
MS Excel
Téma: Přeskočení řádku při exportu
Zaslal/a Johny85 13.2.2013 9:50
Dobrý den,
používám tento způsob exportu do TXT souboru (nevytvořil jsem ho, jen jsem ho našel a upravil), ale nemůžu vůbec přijít na to, jak zařídit funkcí IF, když v pozici (Cells(i, 2) je hodnota pouze "0", aby to takový řádek přeskočilo a pokračovalo dalším a ne, aby se export tímto řádkem ukončil a další řádky neexpotoval. Můžete mě prosím někdo trknout? Děkuji moc
Sub export()
Dim fs As Object, a As Object, i As Integer, s As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("\\Složka\" & "E2-" & Range("R42").Value & ".txt", True)
i = 89
While Not IsEmpty(Cells(i, 2))
s = s & Cells(i, 1) & Chr(9) & Cells(i, 2) & Chr(9) & Cells(i, 3) & Chr(9) & Cells(i, 4) & Chr(9) & Cells(i, 5) & Chr(9) & Cells(i, 6) & Chr(9) & Cells(i, 7) & Chr(9) & Cells(i, 8) & Chr(9) & Cells(i, 9) & Chr(9) & Cells(i, 10) & Chr(9) & Cells(i, 11) & Chr(9) & Cells(i, 12) & Chr(9) & Cells(i, 13) & Chr(9) & Cells(i, 14) & Chr(9) & Cells(i, 15) & Chr(9) & Cells(i, 16) & Chr(9) & Cells(i, 17) & Chr(9) & Cells(i, 18) & Chr(9) & Cells(i, 19) & Chr(9) & Cells(i, 20) & Chr(9) & Cells(i, 21) & Chr(9) & vbNewLine
i = i + 1
Wend
a.WriteLine s
a.Close
End Sub
AL(13.2.2013 10:37)#011630 skus toto, netestoval som, ale snad som v tom neurobil chybu:
Sub export()
Dim fs As Object, a As Object, i As Long, M As Long, s As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("\\Složka\" & "E2-" & Range("R42").Value & ".txt", True)
M = Range("B1048575").End(xlUp).Row 'pokial mas excel 2007 tak miesto "B1048575" napis "B65536"
For i = 89 To M
If Not IsEmpty(Cells(i, 2)) Then _
s = s & Cells(i, 1) & Chr(9) & Cells(i, 2) & Chr(9) & Cells(i, 3) & Chr(9) & Cells(i, 4) & Chr(9) & Cells(i, 5) & Chr(9) & Cells(i, 6) & Chr(9) & Cells(i, 7) & Chr(9) & Cells(i, 8) & Chr(9) & Cells(i, 9) & Chr(9) & Cells(i, 10) & Chr(9) & Cells(i, 11) & Chr(9) & Cells(i, 12) & Chr(9) & Cells(i, 13) & Chr(9) & Cells(i, 14) & Chr(9) & Cells(i, 15) & Chr(9) & Cells(i, 16) & Chr(9) & Cells(i, 17) & Chr(9) & Cells(i, 18) & Chr(9) & Cells(i, 19) & Chr(9) & Cells(i, 20) & Chr(9) & Cells(i, 21) & Chr(9) & vbNewLine
Next
a.WriteLine s
a.Close
End Subcitovat
Johny85(13.2.2013 13:51)#011633 Ano, to dává chybu pro "Next" - "Next without for"
citovat
AL(13.2.2013 14:48)#011635 Po tom, čo si ten kód skopíruješ, zmaž v ňom prázdne riadky, aspoň tie medzi For i a Next, tento web tam pridáva tie riadky nezmyselne a kód potom blbne na tom Then _
citovat
Johny85(14.2.2013 7:50)#011650 Aha, to mě nenapadlo, už to chodí, díky mooc!
citovat
Johny85(14.2.2013 8:15)#011651 Nevěděl bys prosímtě, jak ještě udělat, aby na konci po vyexportování nedělalo 2 prázdné řádky? Zlobí to pak při importu...díky
citovat
AL(14.2.2013 12:43)#011654 medzi riadky
Next a
a.WriteLine s vlož inštrukciu:
s = Left(s, Len(s) - 2)
Zostane Ti na konci jeden prázdny riadok, na jeho odstránenie by si potreboval nejakú inštrukciu fs (file scripting) ale to presahuje moje aktuálne znalosti
citovat