Error 1004 en tiempo de ejecución

Se salta este error: Error 1004 en tiempo de ejecución: Erro definido por la aplicación o el objeto. Al ejecutar el botón con la siguiente macro :

Sub Nuevo_Documento() Set h1 = Sheets("Plantilla") h1.Range("B8:E10,F8:H10,I8:K8,L8:N8,O8:Q8,R8:T8,I10:T10,D12:F12,B14:E14,F14:T14,B16:F16,G16:M16,N16:T16,B18:F18,G18,H18:L18,M18:T18,J21:M21,F23:T23,F25:M25,N25:T25,G27:L27,O27:T27,Q29:T29,B30:E30,F30:H30,I30:K30,L30:N30,P30:R30,T30,D32:F32,G32,H32:I32,J32:T32,D34:H34,K34:N34,Q34:T34,B36:F36,G36,H36:L36,M36:T36,J37:M37,F39:T39,F41:M41,N41:T41").ClearContents End Sub

Lo curioso del caso es que  si el macro quedará asi:

Sub Nuevo_Documento() Set h1 = Sheets("Plantilla") h1.Range("B8:E10,F8:H10,I8:K8,L8:N8,O8:Q8,R8:T8,I10:T10,D12:F12,B14:E14,F14:T14,B16:F16,G16:M16,N16:T16,B18:F18,G18,H18:L18,M18:T18,J21:M21,F23:T23,F25:M25,N25:T25,G27:L27,O27:T27,Q29:T29,B30:E30,F30:H30,I30:K30,L30:N30,P30:R30,T30").ClearContents End Sub

Si funciona, no veo donde está el erro.

1 Respuesta

Respuesta
2

 H o  l  a:

La instrucción está bien escrita, pero como varios objetos, el objeto Range tiene sus límites, el número de caracteres que puedes manejar es de 255 caracteres.

Lo que puedes hacer es dividir la línea en varias líneas, de esa forma funcionará y será más claro, por ejemplo:

Sub Nuevo_Documento()
    Set h1 = Sheets("Plantilla")
    H1. Range("B8:E10, F8:H10, I8:K8, L8:N8, O8:Q8, R8:T8"). ClearContents
 h1. Range("I10:T10, D12:F12, B14:E14, F14:T14"). ClearContents
 h1. Range("B16:F16, G16:M16, N16:T16, B18:F18, G18, H18:L18, M18:T18"). ClearContents
 h1. Range("J21:M21, F23:T23, F25:M25, N25:T25"). ClearContents
 h1. Range("G27:L27, O27:T27, Q29:T29, B30:E30, F30:H30, I30:K30, L30:N30, P30:R30, T30"). ClearContents
 h1.Range("D32:F32,G32,H32:I32,J32:T32,D34:H34,K34:N34,Q34:T34,B36:F36,G36,H36:L36,M36:T36"). ClearContents
 h1. Range("J37:M37, F39:T39, F41:M41, N41:T41"). ClearContents
End Sub

Entiendo que es más práctico ponerlo en una sola línea, pero en este caso, por cuestiones técnicas es necesario dividir la línea, además lo hace más claro a la vista para que puedas revisar si están todas las celdas que deseas limpiar.

También podrías revisar los rangos, por ejemplo este rango:

I8:K8, L8:N8, O8:Q8, R8:T8

Podría quedar como:

I8:T8

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas