Mostrar una fila usando una macro basada en el valor de la celda (para 10000 filas)

0

Soy muy nuevo en macro. Sin embargo, encontré una macro en este sitio web para ocultar filas con el valor False. Edité la macro para que también volviera a mostrar la fila, y funcionó bien. El problema es que quiero que funcione para muchas filas, así que lo hago de A1 a A10000. Cuando lo oculto funciona bien, pero cuando lo oculto, el software Excel dejará de funcionar (uso mac). ¿Entonces qué debo hacer?

Sub HiddeA()
Dim A As Range
Set A = Range("A1:A10000")
A.EntireRow.Hidden = False
For i = 1 To 10000
    If Cells(i, 1).Value <> "" And Cells(i, 1).Value = False Then
        Cells(i, 1).EntireRow.Hidden = True
    End If
Next i
End Sub


Sub ShowA()
Dim A As Range
Set A = Range("A1:A10000")
A.EntireRow.Hidden = True
For i = 1 To 10000
    If Cells(i, 1).Value <> Cells(i, 1).Value = False Then
        Cells(i, 1).EntireRow.Hidden = False
    End If
Next i
End Sub
ahmed mb
fuente
Debería usar for i = 10000 to 1 step -1)solo como buena referencia si desea eliminar algo.
Raystafarian

Respuestas:

1

Sub ShowA()debería ser así:

Sub ShowA()
For i = 1 To 10000
    If Cells(i, 1).Value <> "" And Cells(i, 1).Value = False Then
        Cells(i, 1).EntireRow.Hidden = False
    End If
Next i
End Sub

No necesita emitir la línea A.EntireRow.Hidden = Trueporque oculta cada fila.

Además, olvidó las dobles comillas y andla línea

If Cells(i, 1).Value <> Cells(i, 1).Value = False Then

jcbermu
fuente
¿Por qué hay necesidad de verificar si está vacío? Si no está FALSEvacío, ¿verdad?
Raystafarian
Una cosa más, también estoy tratando de hacer la columna B, cambié todas las A por B, pero no funcionó. ¿Puedes dar el código correcto?
ahmed mb
Más aclaraciones: cuando esté el valor FALSO en una celda de la columna B, quiero que la macro oculte la fila
ahmed mb
Para verificar el Falso en la columna B, cambie Cells(i, 1)aCells(i, 2)
jcbermu