Eliminar saltos de linea antes de convertir a csv
Publicado por cyttorak (2 intervenciones) el 09/02/2015 18:36:46
Hola
He hecho este scrip en vb:
El objetivo es ejecutarlo asi:
script.vb c:\mi.xls
y obtener un csv por cada hoja del xsl.
Hasta ahí ningún problema, esa parte funciona, lo que no consigo es que antes de guardarlo elimine de cada celda los saltos de linea y comas que pudiea haber.
Si pongo un MsgBox(c.Value) veo que los Replace se están haciendo, así que no se que es lo que falla a la hora de guardar.
He hecho este scrip en vb:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if WScript.Arguments.Count < 1 Then
Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
For Each objws In oBook.Sheets
objws.Copy
For Each c In objws.UsedRange
If 0 < InStr(c.Value, Chr(10)) Then
c.Value = Replace(c.Value, Chr(10), "")
End If
If 0 < InStr(c.Value, ",") Then
c.Value = Replace(c.Value, ",", " ")
End If
c.Value=Trim(oExcel.Clean(c.Value))
Next
oExcel.ActiveWorkbook.SaveAs oBook.Path & "\" & oBook.Name & "-" & objws.Name & ".csv", 6
oExcel.ActiveWorkbook.Close False
Next
oBook.Close False
oExcel.Quit
El objetivo es ejecutarlo asi:
script.vb c:\mi.xls
y obtener un csv por cada hoja del xsl.
Hasta ahí ningún problema, esa parte funciona, lo que no consigo es que antes de guardarlo elimine de cada celda los saltos de linea y comas que pudiea haber.
Si pongo un MsgBox(c.Value) veo que los Replace se están haciendo, así que no se que es lo que falla a la hora de guardar.
Valora esta pregunta
0