수천 개의 행이있는 Excel 스프레드 시트가 있습니다. 해당 스프레드 시트에서 모든 7 번째 행을 선택하고 싶습니다. ""선택 "이란 다른 모든 행을 삭제하거나 선택한 행을 새 워크 시트에 복사하는 것을 의미합니다.
Excel 2003에서 가장 쉬운 방법은 무엇입니까?
참조 : 숫자에서 각 n 번째 행 선택
수천 개의 행이있는 Excel 스프레드 시트가 있습니다. 해당 스프레드 시트에서 모든 7 번째 행을 선택하고 싶습니다. ""선택 "이란 다른 모든 행을 삭제하거나 선택한 행을 새 워크 시트에 복사하는 것을 의미합니다.
Excel 2003에서 가장 쉬운 방법은 무엇입니까?
참조 : 숫자에서 각 n 번째 행 선택
답변:
개인적으로 처음 3 ~ 4 줄 (물론 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
...
랜돌프 포터가 시작한 아이디어를 끝내는 것입니다 ....
기록을 위해, 당신이 기록을 통해 이것을 생각해 낼 수 있다고 생각하지 않습니다. 매크로 기록은 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
1
.모든 7 번째 행을 선택하기 위해 더 쉬운 방법이 있습니다. 열의 처음 7 개 행에는 하나의 첫 번째 행에는 무언가를 씁니다. 그런 다음이 7 개의 행을 선택하고 전체 열에 복사하십시오. 이제 필요한 것은 선택-> 특별으로 이동-> 공백 선택-> 확인으로 이동하는 것입니다. 각 7 행마다 선택 항목이 있습니다. 이제 원하는 것을 할 수 있습니다. 즐겨!
7 번째 줄마다