Note: The other languages of the website are Google-translated. Back to English

Excel의 셀 값을 기반으로 전체 행을 활성 시트의 맨 아래로 이동하는 방법은 무엇입니까?

Excel의 셀 값을 기준으로 전체 행을 활성 시트의 맨 아래로 이동하려면이 기사의 VBA 코드를 사용해보십시오.

VBA 코드를 사용하여 셀 값을 기준으로 전체 행을 활성 시트의 맨 아래로 이동


VBA 코드를 사용하여 셀 값을 기준으로 전체 행을 활성 시트의 맨 아래로 이동


예를 들어, 아래 스크린 샷과 같이 C 열의 셀에 특정 값 "Done"이 포함되어 있으면 전체 행을 현재 시트의 맨 아래로 이동합니다. 다음과 같이하십시오.

1. 프레스 다른+ F11 동시에 열려면 키 응용 프로그램 용 Microsoft Visual Basic 창.

2. 에서 응용 프로그램 용 Microsoft Visual Basic 창을 클릭합니다 끼워 넣다 > 모듈. 그런 다음 아래 VBA 코드를 복사하여 창에 붙여 넣으십시오.

VBA 코드 : 셀 값을 기준으로 전체 행을 활성 시트의 맨 아래로 이동

Sub MoveToEnd()
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True
End Sub

주의 사항: VBA 코드에서 "선택한다”는 전체 행을 이동할 기준이되는 셀 값입니다. 필요에 따라 변경할 수 있습니다.

3. 누르세요 F5 키를 눌러 코드를 실행 한 다음 팝업에서 Excel 용 Kutools 대화 상자에서 특정 값이있는 열 범위를 선택한 다음 OK 버튼을 클릭합니다.

를 클릭 한 후 OK 버튼을 누르면 지정된 열에 "Done"값이 포함 된 전체 행이 자동으로 데이터 범위의 맨 아래로 이동합니다.


관련 기사:


최고의 사무 생산성 도구

Excel 용 Kutools는 대부분의 문제를 해결하고 생산성을 80 % 향상시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300 개 이상의 강력한 기능. Office / Excel 2007-2019 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에 쉽게 배포 할 수 있습니다. 전체 기능 30 일 무료 평가판. 60 일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50 % 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (24)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
kutools가 사용자 입력 없이 특정 행을 선택하도록 어떻게 만들 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 애논,
죄송합니다. 무슨 말씀이신지 잘 모르겠습니다. 당신이 그것을 다시 설명하거나 당신이하려고하는 것을 보여주기 위해 스크린 샷을 제공 할 수 있다면 좋을 것입니다.
귀하의 의견 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 Crystal, 이 코드는 훌륭하게 작동합니다. 감사합니다. D 열에 "Complete"라는 단어가 포함된 모든 행을 테이블 맨 위로 이동하고 싶습니다(3행에 삽입). 그게 가능합니까? 그런 다음 V 열에 "어제 날짜"가 포함된 전체 행을 모두 삭제하고 싶습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요. 이것은 내가 원하는 것에 거의 완벽합니다. Anon이 일부 추가 기능과 함께 사용자 입력 없이 이 작업을 수행해야 했던 것과 동일한 요청의 일부가 있습니다.

i4에서 i50까지만 열이 검색되도록 하고 열릴 때나 i열이 편집될 때마다 자동으로 실행되도록 할 수 있는지 궁금합니다. 또한 "완료" 행과 "없음" 행 사이에 빈 행 없이 행을 시트 맨 아래로 이동하는 것이 가능한 경우. 현재 i4:i50을 선택하고 25행까지만 데이터가 있는 경우 50행 대신 25행에서 오름차순으로 "완료" 행을 붙여넣습니다. 내 시트의 행 수는 지속적으로 변경되며 50개 이상. 도움을 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 브랜든,
죄송합니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 같은 시트의 끝이 아닌 다른 위치로 행을 이동하도록 조정할 수 있는 방법이 있습니까? 날짜가 지정된 주문 및 예정된 주문에 대한 주문 정보가 아직 날짜가 지정되지 않은 시트가 있으며 A 열에 "X"를 입력하면 부품 번호 및 배송 위치에 따라 강조 표시되고 굵게 표시됩니다. 이제 날짜(1일~월말)별로 정렬된 상단에 맞도록 새로 날짜(배송 날짜)를 물리적으로 잘라내어 붙여넣어야 합니다. 지금까지 모든 것을 조건부 서식으로 지정할 수 있었지만 그런 식으로 행을 이동할 수는 없다고 생각합니다. VBA가 이 작업을 수행할 수 있는지 궁금합니다. 날짜가 다른 날짜 행에 맞게 입력될 때 행을 이동합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 이 작업을 수행할 수 있는 유일한 방법은 Visual Basic 하위 화면에서 매크로를 "실행"하는 것입니다. 사용자가 "완료"를 입력하면 이 VBA 코드를 자동으로 실행할 수 있습니까? Excel용 Kutools 대화 상자가 표시될 때마다 매개 변수를 묻는 팝업이 표시되어 검색 기준이 되는 코드를 요청합니다. xTxt = ActiveSheet.UsedRange.AddressLocal을 검색에 필요한 매개변수로 바꾸고 Enter 키를 눌러 이 문제를 해결했습니다. 그러나 "완료"를 입력한 후 자동으로 변경이 된다면 더 편리할 것입니다. 고맙습니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 애논,
아래 VBA 코드는 당신에게 호의를 베풀 수 있습니다. 시도해 주세요.
시트 탭(시트에는 맨 아래로 이동할 데이터가 포함됨)을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 코드 보기를 선택한 다음 아래 코드를 코드 창에 복사하십시오.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
'에 의해 업데이트됨 Extendoffice 20190925
범위로 Dim xRg
범위로 Dim xIRg
Dim xTxt를 문자열로
xCell을 범위로 흐리게 처리
Dim xEndRow As Long
흐릿한 I As Long
Dim xDStr을 문자열로
오류에 대한 다음 재개
xDStr = "C:C"
xRg = Me.Range(xDStr) 설정
xIRg = Application.Intersect(대상, xRg) 설정
xIRg가 아무것도 아닌 경우 Sub를 종료하십시오.
Application.ScreenUpdating = False
Application.EnableEvents = False

대상 = "완료"인 경우 다음
xEndRow = ActiveSheet.UsedRange.Rows.Count + 1
Target.EntireRow.Cut
Rows(xEndRow).Insert Shift:=xlDown
END IF
Application.EnableEvents = True
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈님

이 코드를 게시해 주셔서 감사합니다. Done에 오류가 입력된 경우 행을 맨 위로 이동하는 코드를 얻는 방법을 알고 싶습니다. "이동"에 대한 보조 코드를 추가하여 상단으로 이동하고 하단에 대해 "완료"할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
hello crystal vba가 자동으로 코드를 실행하도록 하기 위해 anon에게 준 코드는 훌륭하지만 행 시트를 삽입할 수 없습니다. 수정 가능한 방법이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 사라,
불편을 드려 죄송합니다. 아래 VBA를 시도하십시오. 감사해요.

개인 하위 Worksheet_Change (범위로 ByVal 대상)

'에 의해 업데이트됨 Extendoffice 20200424

범위로 Dim xRg

범위로 Dim xIRg

Dim xTxt를 문자열로

xCell을 범위로 흐리게 처리

Dim xEndRow As Long

흐릿한 I As Long

Dim xDStr을 문자열로

오류 시 Err1로 이동

xDStr = "C:C"

xRg = Me.Range(xDStr) 설정

xIRg = Application.Intersect(대상, xRg) 설정

xIRg가 아무것도 아닌 경우 Sub를 종료하십시오.

Application.ScreenUpdating = False

Application.EnableEvents = False



Target.Value = "완료"인 경우 다음

'xEndRow = ActiveSheet.UsedRange.Rows.Count + 1

xEndRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1

Target.EntireRow.Cut

Rows(xEndRow).Insert Shift:=xlDown

END IF

오류1:

Application.EnableEvents = True

Application.ScreenUpdating = True

최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드를 복사하려고 했지만 계속해서 Me의 잘못된 사용이라고 나옵니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
A열과 B열 아래의 행만 이동해야 하는 경우에는 어떻게 합니까? 그러면 열 C가 유지되어야 합니까? 여전히 EntireRow를 사용해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 제렐입니다.
아래 코드를 시도하십시오. 내가 도울 수 있기를 바랍니다.

하위 MoveToEnd()

'에 의해 업데이트됨 Extendoffice 20200717

범위로 Dim xRg

Dim xTxt를 문자열로

xCell을 범위로 흐리게 처리

Dim xEndRow As Long

Dim xIntR을 정수로

흐릿한 I As Long

Dim xW를 워크시트로

오류에 대한 다음 재개

ActiveWindow.RangeSelection.Count > 1이면

xTxt = ActiveWindow.RangeSelection.AddressLocal

다른

xTxt = ActiveSheet.UsedRange.AddressLocal

END IF

고독한:

xRg 설정 = Application.InputBox("범위 선택:", "Kutools for Excel", xTxt, , , , , 8)

xRg가 아무것도 없으면 Sub를 종료하십시오.

xRg.Columns.Count > 1 또는 xRg.Areas.Count > 1이면

MsgBox "여러 범위 또는 열이 선택되었습니다", vbInformation, "Kutools for Excel"

GoTo lOne

END IF

xEndRow = xRg.Rows.Count + xRg.Row

xWs = xRg.Worksheet

xWs.활성화

Application.ScreenUpdating = False

I = xRg.Rows.Count ~ 1 단계 -1의 경우

xRg.Item(I) = "완료"이면

Rows(xEndRow).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

xIntR = xRg.Cells(I).행

범위("A" & xIntR & ":B" & xIntR).선택

Selection.Cut

범위("A" & xEndRow).선택

ActiveSheet.Paste

xEndRow = xEndRow + 1



END IF

다음

Application.ScreenUpdating = True

최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요



제공된 코드를 사용하는 데 문제가 있으며 구문 오류가 계속 발생합니다. 나는 Excel을 처음 시작했고 재택 사업을 운영하는 데 필요한 것을 스스로 가르치려고 노력했습니다. 열의 항목을 RETIRED로 지정할 수 있는 인벤토리 스프레드시트 ID가 있습니까? 예/아니요 그리고 예인 경우 기본 스프레드 시트에 공백을 남기지 않고 알파벳 순서로 시트의 맨 아래로 이동합니다. 우리는 항목을 완전히 폐기한 다음 제한된 수량으로 특별 재발매를 위해 돌아옵니다. 이러한 항목은 다시 사용할 수 있을 때까지 내 시트의 맨 아래에 저장됩니다. 고맙습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 상사가 나에게 지시한 일이 있습니다. 처음에는 간단해 보였지만 지금은 어떻게 진행해야 할지 혼란스럽습니다. 가능한 작업에 대한 예측 시트가 있으며 % 단위로 "주문 확률" 열이 있습니다. 그는 내가 3-100%, 70%-69, 41-40%로 0가지 다른 시트를 설정하기를 원합니다. 아이디어는 정보가 마스터 시트에 입력될 때 백분율이 입력되면 해당 백분위수 범위와 일치하는 진행 시트에 자동으로 복사된다는 것입니다. 간단한 IF(및 수식)로 이 작업을 수행했습니다. 그러나 빈 셀을 느슨하게 하고 더 깔끔하게 보이게 하려면 inorder를 정렬해야 합니다. 그런 다음 정렬할 때 마스터 시트에 새 Oder Probability 제안을 추가하면 자동으로 수행되지 않습니다. 정렬을 해제한 다음 다시 정렬하지 않고 표시합니다. 이 질문이 그녀에게 속하지 않으면 죄송합니다. 하지만 이 문제를 더 쉽게 처리할 수 있는 코드 문자열이 있습니까? 전체 행이 이동되는지 여부를 결정하는 유일한 값은 K 컬럼은 간단해 보이지만 엑셀 초심자에게는 복잡합니다. 미리 도움을 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
"완료"가 열 문자열의 일부일 경우 어떻게 합니까? 내 열에 XYZDone, ABCDone, 123Done 등과 같은 값이 포함되어 있다고 가정하면 부분 문자열 "Done"을 기준으로 필터링할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈님,
도움을 주셔서 감사합니다. 코드는 훌륭하게 작동하지만 행을 페이지 맨 아래로 이동하는 대신 "닫힌" 탭과 같은 다른 탭으로 이동하는 방법은 무엇입니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
답변이 너무 늦어 죄송합니다.
코드에서 "xRg.Cells(I) = "완료"이면"~에 xRg.Cells(I)가 "*Done*"을 좋아한다면 그것을 끝내기 위해.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
한 열이 선택되면 스프레드시트의 한 섹션으로 이동해야 하고 다른 열이 선택되면 끝으로 이동해야 하는 확인란이 있는 목록이 있습니다. 나는 이것을하기 위해 XNUMX 가지 diff 방법을 시도했지만 아무도 이것을 도울 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕! 방금 kutools를 구입하여 이 vba 코드를 Excel 시트에 *** 사용할 수 있습니다. 사용하기에 탁월한 기능이 될 것이기 때문입니다! 위의 지침은 간단하고 유용합니다. 그러나 코드를 복사하여 창에 붙여넣는 단계에 도달하고 F5 키를 누르면 매크로의 이름을 지정하고 생성하는 상자로 나를 보냈습니다. 그렇게 했지만 이제는 대화 상자로 이동하지 않으므로 셀 범위를 선택할 수 있습니다. "잘못된 외부 프로시저" 컴파일 오류가 나타납니다. 도와주세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
잘못 인도해서 죄송합니다. 코드는 자체적으로 사용할 수 있으며 Kutools를 구입할 필요가 없습니다. 필요하지 않은 경우 sales@로 이메일을 보내주십시오.extendoffice.com에서 환불을 요청하세요.
코드가 원활하게 작동하려면 커서가 코드 창에 있는지 확인한 다음(코드에서 아무 단어나 클릭) F5 코드를 실행하는 키입니다. 그러면 셀 범위를 선택하는 대화 상자가 나타납니다.
불편을 드려 다시 한 번 죄송합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
나 또! 나는 코드를 알아 냈습니다. 화면 오른쪽 상단의 복사 버튼을 사용하지 않고 수동으로 코드를 복사하여 붙여넣었습니다. "완료"를 "x"로 변경했습니다. 각 워크시트에서 코드를 실행했습니다. 대화 상자에서 선택한 셀 범위 내의 해당 셀에 "x"를 입력하기 시작하면 아무 일도 일어나지 않습니다(행이 자동으로 맨 아래로 이동하지 않음). 나는 이것에 아주 새로운 것입니다 .... 당신의 도움에 감사드립니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
지정된 단어를 입력할 때 자동으로 행을 맨 아래로 이동하려면 다음 VBA 코드를 시도하십시오.
주의 사항: 워크시트 코드 창에 코드를 입력해야 합니다(시트 탭을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 코드 보기 선택).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Extendoffice 20220520
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Range("C2:C18")
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True
End Sub
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0  등장 인물
추천 위치