在Excel中选择第n行


Answers:


19
  1. 插入一列
  2. 在第一行中插入公式= MOD(ROW(),7)
  3. 复制下来
  4. 复制/粘贴特殊/值
  5. 数据/过滤出想要的(可能是0或6)
  6. 删除其余行删除过滤器删除列

不错的解决方案。我喜欢我的宏,因此这是我的首选,但这也可以用一点努力。

2
= MOD(ROW(),7)您需要第二个参数。
dkusleika,2009年

3

就个人而言,我记录了一个宏来执行前三或四行(当然,以7行为增量),并将这些行复制到新的工作表中。然后,我将编辑宏以使用一个循环,该循环以7为步数计入工作表中已填充的行数。

伪代码示例:

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
...

如果您确实使用了宏,请尝试向后退<code> <pre> Sub delrows()Dim i只要I = 988 To 1 Step -7 Sheet1.Cells(i,1).Offset(1,0).Resize (6).EntireRow.Delete Next i End Sub </ pre> </ code>如果删除行,则循环不会发疯。
dkusleika,2009年

他没有删除,只是在范围对象中添加了一行(包含在注释中)
DaveParillo

1
他说:“通过选择,我的意思是删除所有其他行...”
dkusleika 2009年

3

真的只是完成了兰道夫·波特的构想。

作为记录,我认为您不可能通过记录来解决这个问题。宏记录是使自己熟悉Excel对象模型的好方法,但不是编写可重用函数的很好方法。

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

与您一起使用可重用的概念。

3
  1. 插入一列。
  2. 在第一行中插入1
  3. 复制到第7行 Ctrl
  4. 抓住那块,然后再次做同样的事情。
  5. 对不需要的数据进行数据/过滤,然后将其删除。
  6. 删除插入的列。

感谢您的回答。您能否详细说明第3步?您是要在拖动鼠标时按住Ctrl键吗?我目前无法使用Excel 2003,因此无法测试。
Patrick McElhaney 2012年

1

要选择每第7行,有一种简便的方法:在列的前7行中,但在其中的第一行中写一些东西。然后,选择这7行并将其复制到整个列中。现在,您只需要转到SELECT-> GO TO SPECIAL-> select Blanks-> OK就可以了,每7行有一个选择。现在,您可以做您想做的事。请享用!


0

每第7行,

  1. 插入一列
  2. 在第1行至第6行中,输入“ X”
  3. 在第7行中放入1
  4. 用该块自动填充您的列
  5. 在该列上使用“删除重复项”
  6. 删除第一行(带有第一行“ X”)。
  7. 删除添加的列

欢迎来到超级用户。从本质上讲,这是公认的答案中提出的方法,而pnuts提出的方法,只会增加工作量(破坏性)。目前尚不清楚它的作用。
fixer1234 '18 -10-25

它只是在使用另一个菜单,在我看来并没有比最初的发帖人请求更多的工作,也没有更具破坏性(“删除所有其他行”)。
Ponch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.