Se ha producido el error "1004" en tiempo de ejecución: Error definido por la aplicación o el objeto
Soy nuevo para código para VB en excel y generar macros, tengo un problema con un código que anteriormente encontré en todoexpertos ¿Cómo copiar filas que cumplan una condición de una hoja a otra? Y lo aplique a la libro en excel en el que estoy trabajando, genera un problema, "Se ha producido el error "1004" en tiempo de ejecución: Error definido por la aplicación o el objeto", Me podrían ayudar para donde encontrar el problema; adjunto el código, el problema esta en donde se marca.
Private Sub CommandButton2_Click()
Cuenta = Me.ListBox1.ListCount
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) = True Then
'nombres de hojas
Set h1 = Sheets("Datos")
Set h2 = Sheets("formatol")
'columna para verificar si tiene un 1
col = Me.ListBox1.Selected(i)
'última fila con datos de la hoja2
u = h2.UsedRange.Rows(h2.UsedRange.Rows.Count).Row + 1
'AQUI SE GENERA EL ERROR
For x = 1 To h1.Range(col & Rows.Count).End(xlUp).Row
If h1.Cells(i, col) = 1 Then
'Pasar datos a la hoja2,
'del lado izquierdo pon la columna destino
'del lado derecho pon la columna origen
'Por ejemplo si la hoja2 la columna B recibe la columna D
h2.Range("A" & u) = h1.Range("C12")
'Por ejemplo si la hoja2 la columna A recibe la columna E
h2.Range("B" & u) = h1.Range("L12")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("C" & u) = h1.Range("D15")
'Por ejemplo si la hoja2 la columna B recibe la columna D
h2.Range("D" & u) = h1.Range("D16")
'Por ejemplo si la hoja2 la columna A recibe la columna E
h2.Range("E" & u) = h1.Range("D17")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("F" & u) = h1.Range("T5")
'Por ejemplo si la hoja2 la columna B recibe la columna D
h2.Range("G" & u) = h1.Range("U5")
'Por ejemplo si la hoja2 la columna A recibe la columna E
h2.Range("H" & u) = h1.Range("D20")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("I" & u) = h1.Range("C21")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("J" & u) = h1.Range("M21")
u = u + 1
End If
Next x
End If
Next i
Unload Me
End Sub