Visual Basic - Error de sintaxis?

Life is soft - evento anual de software empresarial
 
Vista:

Error de sintaxis?

Publicado por María José (14 intervenciones) el 03/05/2006 14:13:35
Desde una form de VB quiero localizar la última celda utilizada de un fichero excel que ya tengo creado. He utilizado un código de una respuesta de aquí:

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim ApExcel As Object
Dim fila

ApExcel = CreateObject("Excel.application")
' Hace que Excel se vea
ApExcel.Visible = True
'ABRIR
ApExcel.Workbooks.Open("c:\users\lista de materiales.xls")

'Poner Titulos
fila = 1
While (ApExcel.Sheets("hoja1").cells(fila, 1) <> "")

fila = fila + 1

End While 'revisa desde la fila 1 hasta la ultima fila escrita en numero de fila que te devuelve es el que le sigue a la ultima fila escrita
MsgBox("ultima fila escrita" & fila - 1) 'ultima fila escrita
MsgBox("ultima fila que sigue" & fila)
ApExcel = Nothing
End Sub
End Class

Cuando lo proceso me da el error:

Overload resolution failed because no Public '<>' can be called with these arguments:
'Public Shared Operator <>(a As String, b As String) As Boolean':
Argument matching parameter 'a' cannot convert from '__ComObject' to 'String'
Este error me da en la línea del WHILE.

Si me podéis ayudar, os lo agradeceré.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de sintaxis?

Publicado por Juan (93 intervenciones) el 03/05/2006 15:53:52
Creo que esto no te devuelve un String: AppExcel.Sheets("hoja1").cells(fila, 1)
Podrias hacer una trampa, asignarselo a otra variable, concaternala con un String vacio "" y usar la variable en el while a ver si funciona.
Prueba y avisaa ver que tal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sintaxis?

Publicado por Maria Jose (14 intervenciones) el 04/05/2006 08:15:07
Tenías razón, esa sentencia devuelve una variable tipo "Range". El problema que tengo ahora es que no me deja utilizar la función Format (para convertir un nº a string) con una variable de este tipo. Gracias, de todas formas, seguiré investigando y te cuento, si se te ocurre algo, ya sabes.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ya está!!!

Publicado por María José (14 intervenciones) el 04/05/2006 09:06:47
Era sencillo, simplemente hay que añadir .value al final de la variable donde almaceno el contenido de la celda, eso ya lo convierte en un string:

celda = ((ApExcel.Sheets("hoja1").cells(fila, 1))).value

Por si alguien más tiene este mismo problema.

Gracias por la orientación, sino, no hubiese dado con esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar