Error en el método PasteSpecial de la clase Range

Un gusto! Espero que estés muy bien.
Este es mi problema: quiero copiar desde una hoja a otra
una serie de datos, pegando sólo valores y omitiendo blancos
(Des-seleccionando unos campos de un autofiltro entremedio, y hallando
una línea en blanco para empezar a pegar), de esta manera:
Private Sub Commandbutton2_Click()
Range("B8:Q357").Select
Selection.Copy
Sheets("BASE DE DATOS").Activate
    Selection.AutoFilter Field:=2
    Selection.AutoFilter Field:=3
Do While Not IsEmpty(ActiveCell)
    ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell.Offset(0, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False

Application.CutCopyMode = False
Load OPCION
OPCION.Show
End Sub
El problema ocurre en PasteSpecial (ennegrecido), y me arroja el siguiente error:
"Se ha producido el error '1004' en tiempo de ejecución
Error en el método PasteSpecial de la clase Range"
¿Tendrá solución este problema?

1 Respuesta

Respuesta
1
Estos problemas son medio "culpas" del Excel y es que a veces "no le gusta" cuando copias un rango rectangular y lo pegás en una celda. Primer asegurate que el rango B8:Q357 no tenga celdas combinadas (son bastante molestas a la hora de copiar/pegar); la otra es que veas en el momento del pegar cual es la celda activa (no creo pero puede pasar que estés al límite de la hoja y cuando quiera pegar se "va de rango")...
Saludos y avisá si no se arreglan los problemas
Gfellay
Gracias por responderme! No, sabes no tengo celdas combinadas en el rango B8:Q357, ni tampoco la celda activa está al fondo de la hoja como para quedar fuera de rango. Dices que es un capricho de excel de repente el poner problemas cuando se quiere copiar un rango rectangular en una celda... entonces, si después de
ActiveCell. Offset(0, -1). Select
selecciono un rango rectangular de iguales dimensiones que B8:Q357? ¿Cómo podría hacer eso? Bueno, no sé si con eso se soluciona, es una idea nada más. Un abrazo.
Me parece válido el intento, probá con
ActiveCell.Offset(0,-1).Resize(16,350).PasteSpecial Paste:=xlPasteValues

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas