Selecione cada enésima linha no Excel


Respostas:


19
  1. Inserir uma coluna
  2. Na primeira linha, insira a fórmula = MOD (ROW (), 7)
  3. Anote
  4. Copiar / colar valores especiais
  5. Dados / Filtre os que você deseja (0 ou 6, provavelmente)
  6. Excluir o restante das linhas Remover filtro Excluir coluna

Não é uma solução ruim. Eu gosto das minhas macros, então essa é a minha primeira escolha, mas isso também pode funcionar com um pouco de esforço.

2
= MOD (ROW (), 7) você precisa desse segundo argumento.
dkusleika

3

Pessoalmente, eu gravava uma macro para fazer as primeiras três ou quatro linhas (em incrementos de 7 linhas, é claro) e copiava as linhas para uma nova planilha. Depois, edito a macro para usar um loop que conta com o número de linhas preenchidas na planilha, com uma etapa de 7.

Exemplo de pseudo-código:

Dim i as Integer

For i = 1 To 1000 Step 7
    'Add current row to selection
    ...
Next i

'Copy the selected rows to new sheet
...

Se você usar uma macro, tente retroceder <code> <pre> Sub delrows () Dim i Quanto tempo for i = 988 Para 1 Etapa -7 Planilha1.Células (i, 1) .Offset (1, 0) .Resize (6) .EntireRow.Delete Next i End Sub </pre> </code> Se você excluir linhas, o loop não ficará louco.
dkusleika

Ele não está apagando, apenas adicionando uma linha para um objeto de intervalo (implícita no comentário)
DaveParillo

1
Ele diz "por seleção, quero dizer excluir todas as outras linhas ..."
dkusleika

3

Realmente apenas terminando a idéia que Randolph Potter começou ....

Para o registro, eu acho que você nunca poderia pensar nisso gravando. A gravação de macro é uma boa maneira de se familiarizar com o Modelo de Objeto do Excel, mas não é uma maneira 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

Com você na noção reutilizável.

3
  1. Inserir uma coluna.
  2. Na primeira linha, insira 1.
  3. Copie para a linha 7 com Ctrlpressionado.
  4. Pegue esse bloco e faça o mesmo novamente até o fim.
  5. Dados / Filtre os que você não deseja e exclua-os.
  6. Exclua a coluna inserida.

Obrigado pela resposta. Você pode elaborar a etapa 3? Você quer manter pressionada a tecla Ctrl enquanto arrasta o mouse? Não tenho acesso ao Excel 2003 no momento, portanto não posso testar.
Patrick McElhaney 8/12/12

1

para selecionar a cada 7ª linha, há uma MANEIRA MAIS FÁCIL: nas primeiras 7 linhas da sua coluna, mas uma (a primeira) você escreve algo dentro. Depois, você seleciona essas 7 linhas e as copia na coluna inteira. Agora, o que você precisa é apenas ir para SELECIONAR-> IR PARA ESPECIAL-> selecionar EM BRANCO-> OK. Você tem a cada 7 linhas uma seleção. Agora você pode fazer o que quiser. Desfrutar!


0

para cada 7ª linha,

  1. Inserir uma coluna
  2. Na linha 1 à linha 6, coloque um "X"
  3. na linha 7, coloque 1,
  4. preencha automaticamente sua coluna com esse bloco
  5. Use "Remover duplicatas" nessa coluna
  6. Apague a 1ª linha (com o 1º "X").
  7. Excluir coluna adicionada

Bem-vindo ao superusuário. Este é essencialmente o método proposto na resposta aceita e o método por nozes, apenas mais trabalho (e destrutivo). Não está claro o que contribui.
fixer1234

É apenas usando outro menu, não é realmente mais trabalhoso em minha opinião, nem mais destrutivo do que os pedidos originais de pôsteres ("exclua todas as outras linhas").
Ponch
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.