Recorrer columnas y filtrar valor mayor que 0

Tengo una duda con un código el cual lo que busco es seleccionar un rango que empiece desde f4 y hasta la ultima columna con datos y la ultima fila con datos, de ahí que valla evaluando cada columna y filtrando los valores mayores a 0 después seria el copiar y pegar en otra hoja de excel pero eso ya lo tengo dominado

Sub Macro2()
'
' Macro2 Macro
'

'
ucolumna = Sheets("Matriz").Cells(4, Columns.Count).End(xlToLeft).Column
ufila = Range("F4", Cells(Rows.Count, "F").End(xlUp)).Count + 3
Dim columna As Range
For i = 1 To ucolumna
Sheets("Matriz").Select
For Each columna In Range(Cells(4, 6), Cells(4, ucolumna))
Range("F4:" & ucolumna & ufila).Select
Range("F4:" & ucolumna & ufila).AutoFilter field:=i, Criteria1:=">0", Operator:=xlFilterValues
'copiar y pegar en otra hoja los datos filtrados
ActiveSheet.ShowAllData
Next
Next
End Sub

Al momento de ejecutar la macro me dice que se ha producido un error "1004" en tiempo de ejecución error en el método range del objeto global

Se los agradecería mucho si me ayudaran con la información que de me hace falta para completar esta parte del código y si funcionara como lo deseo

Añade tu respuesta

Haz clic para o