Control de excel desde programa externo

Yo hice esta misma pregunta hace unmes a dos expertos y todavía no he recibido respuesta, pero en fin al grano.
Hola estoy tratando de controlar excel desde autocad vía vba, mi problema es el siguiente quizás sea sencilla pero no logro resolverlo.
Toda la parte de conexión con excel la realizo, pero al momento de abrir un archivo ocurre el error, los métodos que estoy usando son los siguientes:
appli.Workbooks.OpenText FileName:=PathForm!DB_Path.FileName, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=True, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _
, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
TrailingMinusNumbers:=True
Donde appli es la variable que controla a excel, este me da un error para abrir el archivo.
appli.Workbooks.OpenText Filename:=File
Con esta logro abrir el archivo pero no me sapara los valores en las celdas, sino que toda la información se almacena en una sola celda como una cadena de texto.
El archivo que estoy tratando de abrir es un *.txt.

1 Respuesta

Respuesta
1
Raulh76,
Antes que nada te aviso que se puede hacer perfectamente, yo abro archivos ASCII (txt) con el VB 6.0 y genero excels con formato (color, autofiltro, lineas, etc). Los archivos de entrada que utilizo tienen distintos formatos (separados por ; por @ por, etc.). Al principio me costo demasiado, pero lo logre. Me deberías decir cual es el error que te da, pero suele darse en FieldInfo, ademas no me decís como esta dividida la información dentro del .txt. Te muestro la forma en que lo hago yo (todo dinámico), así te fijas si te sirve.
Hay dos formas:
1) En este ejemplo la info del archivo .txt esta dividida por punto y coma (;) y a todas las celdas se le da el formato de texto (para que los números largos no se vean con la E):
Dim myArray(0 To 150)
Dim j As Integer
For j = 0 To 150
myArray(j) = Array(j + 1, 1)
Next
For j = 0 To 150
myArray(j) = Array(j + 1, 2)
Next
'Abrimos el archivo
xlApp.Workbooks.OpenText _
FileName:="C:\ejemplo.txt", _
Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=myArray
Los siguientes campos indican como esta dividida la info dentro del .txt:
ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other
Solo uno puede estar en TRUE (la info no pude estar dividida por dos cosas).
2) En este ejemplo la info del archivo .txt esta dividida por @ y no se le hace nada a las celdas:
xlApp.Workbooks.Open _
FileName:="C:\ejemplo.txt", _
Format:=xlCSV, _
Delimiter:=";", _
ReadOnly:=True
Cualquier cosa, avisame.
Saludos.
Pablo.
PD: No te olvides de ponerle puntaje a la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas