Excel kad snimi kao tekst file ubacuje poslednji red prazan. Ako ti to baš smeta, umesto da koristiš Save As treba da otvoriš tekst file i direktno prepišeš podatke iz tabele u tekst file - slično kodu koji si našla. Prepravljena verzija koja pravi csv izgledala bi npr:
Code:
Sub TextStreamTest()
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 'ASCII ili Unicode
Dim fs, f, ts
Dim strFileName As String
Dim rRange As Range
Dim rw As Long, cl As Integer
Dim strRed As String
Application.DisplayAlerts = False
Set rRange = Application.InputBox(Prompt:= _
"Zadaj opseg koji treba sacuvati kao text file ", _
Title:="SPECIFY RANGE", Type:=8)
On Error GoTo 0
Application.DisplayAlerts = True
If rRange Is Nothing Then
Exit Sub
Else
Set fs = CreateObject("Scripting.FileSystemObject")
strFileName = "C:\TEMP\test1.txt"
fs.CreateTextFile strFileName 'Create a file
Set f = fs.GetFile(strFileName)
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
' Petlja za upis u Text file
For rw = 1 To rRange.Rows.Count
strRed = rRange.Cells(rw, 1).Text ' Prva celija iz reda se obavezno upisuje
For cl = 2 To rRange.Columns.Count ' Ostale celije iz reda
strRed = strRed & "," & rRange.Cells(rw, cl).Text 'dodavanje zareza za razdvajanje i vrednosti iz celije
Next cl
If rw < rRange.Rows.Count Then
ts.Writeline strRed
Else
ts.Write strRed
End If
Next rw
ts.Close
End If
End Sub
Da napomenem ono što je tebi bitno Writeline upisuje kraj reda a write upisuje string bez kraja reda u textstream
[Ovu poruku je menjao Jpeca dana 20.02.2008. u 11:09 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?