Visual Basic para Aplicaciones - error en tiempo de ejecucion

Life is soft - evento anual de software empresarial
 
Vista:

error en tiempo de ejecucion

Publicado por diego (6 intervenciones) el 11/06/2007 17:17:06
Buenas tardes,
Tengo un archivo excel en el cual en cada registro se copian los valores de unas determinadas celdas de una plantilla que rellenan varios departamento con unos datos.
Pues bien,me he creado una macro en el cual voy al directorio donde estan todas las plantillas y cargo el valor de esos campos en mi excel.El problema es que en las plantillas hay campos que pasan de los 255 caracteres y entonces voy a tener que meter ese valor en varias celdas.
Aqui viene el problema,he metido el tratamiento de esta casuística y me da el error 1004 no entiendo porque.El codigo es este.

Private Sub Workbook_Open()
Dim i As Integer
Dim f As String
Dim f2 As String
Dim Directorio As String
Dim c As Collection
Set c = New Collection
Directorio = "\\NES004900-005\ATI_DesaComun\Desarrollo\SEGUIMIENTO DE PROYECTOS - JESÚS PABLO\Seguimiento Proyectos\Seguimiento_070601\"
f = Dir(Directorio, 7)
f2 = "[" & f & "]Informe'!"
c.Add (f2)
Do While f <> ""
f = Dir()
f2 = "[" & f & "]Informe'!"
c.Add (f2)
Loop
For i = 1 To c.Count - 1
Cells(i + 1, 1).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R2C11"
Cells(i + 1, 2).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R3C5"
Cells(i + 1, 3).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R2C5"
Cells(i + 1, 4).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R8C2"
If Len(Cells(i + 1, 4).Value) >= 255 Then
Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"

End If
Cells(i + 1, 5).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R5C4"
Cells(i + 1, 6).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R9C8"
Cells(i + 1, 7).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C8"
Cells(i + 1, 8).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C8"
Cells(i + 1, 9).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R12C8"
Cells(i + 1, 10).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R13C8"
Cells(i + 1, 11).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R9C11"
Cells(i + 1, 12).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C11"
Cells(i + 1, 13).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R16C2"
Cells(i + 1, 14).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R16C6"
Cells(i + 1, 15).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R18C2"
Cells(i + 1, 16).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R18C10"
Cells(i + 1, 17).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R21C2"
Cells(i + 1, 18).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R21C7"
Cells(i + 1, 19).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R24C2"
Cells(i + 1, 20).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R24C7"
Cells(i + 1, 21).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R29C3"
Cells(i + 1, 22).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R30C3"
Cells(i + 1, 23).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R31C3"
Next
Set c = Nothing
End Sub

Me falla en la linea
Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"
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 en tiempo de ejecucion

Publicado por Gopster (2 intervenciones) el 15/06/2007 19:24:10
Oye amigo

ya te fijaste que tienes una doble comilla despues del = en la asignacion a la formula???

Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"

esta justo despues del parentesis despues de "extrae", recuerda que una doble comilla se traduce a una comilla sencilla dentro de una cadena y NO cierra la cadena, seguro que el error se refiere a algo de que no estas cerrando la cadena adecuadamente.

Las demas liness de codigo t tienen problemas similares

Saludos.
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