2009-11-11 22:10:59 +0000 2009-11-11 22:10:59 +0000
15
15

Seleccione cada enésima fila em Excel

Tenho uma folha de cálculo Excel com milhares de filas. Quero seleccionar cada 7ª fila dessa folha de cálculo. (Por “seleccionar,” quero dizer apagar todas as outras linhas, ou copiar as linhas seleccionadas para uma nova folha de cálculo).

Qual é a forma mais fácil de o fazer em Excel 2003?

Veja também: Seleccione cada n-ésima linha em Números

Respostas (5)

19
19
19
2009-11-11 22:27:52 +0000
  1. Inserir uma coluna
  2. Na primeira linha inserir fórmula =MOD(ROW(),7)
  3. Copiar para baixo
  4. Copiar/colar especial/valores
  5. Dados/Filtro para fora os que deseja (0 ou 6, provavelmente)
  6. Eliminar o resto das filas Remover filtro Eliminar coluna
3
3
3
2012-11-08 12:23:18 +0000
  1. Inserir uma coluna.
  2. Na primeira fila, inserir 1.
  3. Copiar para a linha 7 com Ctrl deprimido.
  4. Agarrar nesse bloco e fazer o mesmo até ao fim.
  5. Dados/Filtre os que não quer e apague-os.
  6. Apagar a coluna inserida.
3
3
3
2009-11-12 00:42:01 +0000

Realmente apenas a terminar a ideia Randolph Potter começou….

Para que conste, não me parece que alguma vez se consiga chegar a este ponto gravando. A gravação em macro é uma boa forma de se familiarizar com o Modelo de Objectos Excel, mas não uma forma muito boa de escrever funções reutilizáveis.

Option Explicit

'A simple test that copies every 7th row from the active sheet to a new sheet.
Sub SimpleTest()
    Dim r As Range
    Dim ws As Worksheet

    Set r = GetEveryNthRow(7)
    If Not r Is Nothing Then
        Set ws = Worksheets.Add(Before:=Sheets(1))

        r.Copy ws.Range("A1")
    Else
        MsgBox "Nothing came back from GetEveryNthRow"
    End If
    Set ws = Nothing
    Set r = Nothing
End Sub

'
Function GetEveryNthRow(ByVal NthRow As Long) As Range
    Dim keepRows As Range
    Dim r As Range

    If NthRow > 0 Then
        Set keepRows = Rows(1)
        For Each r In ActiveSheet.UsedRange.Rows
            If (r.Row Mod NthRow) = 0 Then
                Set keepRows = Union(keepRows, Rows(r.Row))
            End If
        Next r
        Set GetEveryNthRow = keepRows
    Else
        MsgBox "The row multiple provided must be greater than 0"
    End If

    Set keepRows = Nothing
End Function
1
1
1
2017-07-17 05:16:57 +0000

para seleccionar cada 7ª fila há um CAMINHO FÁCIL: nas primeiras 7 filas da sua coluna, mas uma (a primeira) escreve algo no interior. Depois selecciona estas 7 filas e copia-as em toda a coluna. Agora o que precisa é apenas de ir a SELECT->GO TO SPECIAL->select BLANKS->OK Tem cada 7 filas uma selecção. Agora, pode fazer o que quiser. Desfrute!

0
0
0
2018-10-25 16:21:05 +0000

para cada 7ª fila,

  1. inserir uma coluna
  2. Na linha 1 para a linha 6 colocar um “X”
  3. na linha 7 colocar 1,
  4. preencher automaticamente a sua coluna com esse bloco
  5. Use “Remove Duplicates” nessa coluna
  6. Apague a 1ª fila (com o 1º “X”).
  7. Eliminar a coluna adicionada