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

Excel의 셀 값을 기반으로 전체 행을 다른 시트로 이동하는 방법은 무엇입니까?

셀 값을 기준으로 전체 행을 다른 시트로 이동하는 경우이 문서가 도움이 될 것입니다.

VBA 코드를 사용하여 셀 값을 기반으로 전체 행을 다른 시트로 이동
Excel 용 Kutools를 사용하여 셀 값을 기반으로 전체 행을 다른 시트로 이동


VBA 코드를 사용하여 셀 값을 기반으로 전체 행을 다른 시트로 이동

아래 스크린 샷과 같이 C 열에 특정 단어 "Done"이있는 경우 전체 행을 Sheet1에서 Sheet2로 이동해야합니다. 다음 VBA 코드를 시도해 볼 수 있습니다.

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

2. Microsoft Visual Basic for Applications 창에서 끼워 넣다 > 모듈. 그런 다음 아래 VBA 코드를 복사하여 창에 붙여 넣으십시오.

VBA code 1: Move entire row to another sheet based on cell value

Sub Cheezy()
'Updated by Kutools for Excel 2017/8/28
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
       If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            xRg(K).EntireRow.Delete
            If CStr(xRg(K).Value) = "Done" Then
                K = K - 1
            End If
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

주의 사항: 코드에서 Sheet1 이동하려는 행이 포함 된 워크 시트입니다. 과 Sheet2 행을 찾을 대상 워크 시트입니다. “C : C”는 특정 값을 포함하는 열이고“선택한다”는 행을 이동할 기준이되는 특정 값입니다. 필요에 따라 변경하십시오.

3. 누르세요 F5 키를 눌러 코드를 실행하면 Sheet1의 기준에 맞는 행이 즉시 Sheet2로 이동합니다.

주의 사항: 위의 VBA 코드는 지정된 워크 시트로 이동 한 후 원본 데이터에서 행을 삭제합니다. 행을 삭제하는 대신 셀 값을 기준으로 만 복사하려는 경우. 아래 VBA 코드 2를 적용하십시오.

VBA code 2: Copy entire row to another sheet based on cell value

Sub MoveRowBasedOnCellValue()
'Updated by Extendoffice 2017/11/10
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Excel 용 Kutools를 사용하여 셀 값을 기반으로 전체 행을 다른 시트로 이동

VBA 코드의 초보자 인 경우. 여기에서는 특정 셀 선택 ~의 유용성 Excel 용 Kutools. 이 유틸리티를 사용하면 워크 시트의 특정 셀 값 또는 다른 셀 값을 기반으로 모든 행을 쉽게 선택할 수 있으며 필요에 따라 선택한 행을 대상 워크 시트에 복사 할 수 있습니다. 다음과 같이하십시오.

신청하기 전에 Excel 용 Kutools, 제발 먼저 다운로드하여 설치하십시오..

1. 행을 이동할 기준이되는 셀 값이 포함 된 열 목록을 선택한 다음 쿠툴 > > 특정 셀 선택. 스크린 샷보기 :

2. 오프닝에서 특정 셀 선택 대화 상자에서 전체 행 에서 선택 유형 섹션에서 선택 같음 에서 특정 유형 드롭 다운 목록에서 텍스트 상자에 셀 값을 입력 한 다음 OK 버튼을 클릭합니다.

다른 특정 셀 선택 선택한 행의 수를 표시하는 대화 상자가 팝업되고, 선택한 열에 지정된 값이 포함 된 모든 행이 선택되었습니다. 스크린 샷보기 :

3. 누르세요 Ctrl 키 + C 키를 눌러 선택한 행을 복사 한 다음 필요한 대상 워크 시트에 붙여 넣습니다.

주의 사항: 두 개의 다른 셀 값을 기반으로 행을 다른 워크 시트로 이동하려는 경우. 예를 들어 "완료"또는 "처리 중"셀 값을 기준으로 행을 이동하면 Or 조건 특정 셀 선택 아래 스크린 샷과 같은 대화 상자 :

  무료 평가판(30-일) 이 유틸리티의 그것을 다운로드하려면 클릭하십시오을 클릭 한 다음 위 단계에 따라 작업 적용으로 이동합니다.


관련 기사:


최고의 사무 생산성 도구

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

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

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

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (299)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 저는 이 특정 가이드가 제가 본 다른 가이드보다 정말 유용하다는 것을 알았습니다. 고맙습니다! 내가 겪고 있는 문제는 원하는 값을 '닫힘'으로 변경하면 행을 이동하기 위해 F5를 실행해야 한다는 것입니다. 자동으로 움직이게 하고 싶습니다. 저는 Excel을 처음 사용하므로 귀하의 도움에 감사드립니다. Sub Cheezy() Dim xRg As Range Dim xCell As Long Dim J As Long I = Worksheets("ECR Incident Tracker").UsedRange.Rows.Count J = Worksheets("해결된 문제").UsedRange.Rows. Count If J = 1 then If Application.WorksheetFunction.CountA(Worksheets("Resolved Issues").UsedRange) = 0 then J = 0 End If Set xRg = Worksheets("ECR Incident Tracker").Range("B1:B" & I) 오류 발생 시 다음 Application.ScreenUpdating = xRg의 각 xCell에 대해 False If CStr(xCell.Value) = "Closed" then xCell.EntireRow.Copy Destination:=Worksheets("Resolved Issues").Range("A" & J + 1) xCell.EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 모듈을 열고 F5 키를 누르지 않고도 셀 이동을 자동화하려고 합니다. 이 질문을 해결한 적이 있습니까? 미리 감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Crystal은 오늘 그 방법에 대한 정보를 제공했습니다. 그녀의 응답을 보려면 이 스레드의 XNUMX페이지를 살펴보세요. 열에 오늘 날짜가 있는 행(제 경우에는 L)을 다른 워크시트로 자동으로 이동합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드를 실행 중이고 열 I에 나타나는 오늘 날짜를 기준으로 행을 이동하려고 합니다. Range("B1:B" & I)를 Range(I1:I" & I)로 읽도록 변경했습니다. 귀하의 예에서 "완료"를 날짜로 지정합니다. 그러나 오늘 날짜가 필요에 따라 I 열뿐만 아니라 행의 아무 곳에나 나타나면 행이 대체 워크시트로 이동합니다. 이러한 일이 발생하는 이유와 행을 이동시킬 수 있는 방법에 대한 아이디어 오늘 날짜가 다른 열에 나타나는지 여부에 관계없이 오늘 날짜가 열 I에 있을 때만?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 행을 이동할 많은 값과 많은 시트를 갖고 싶다면 해당 셀에 대해 다른 값으로 전체 코드를 다시 작성해야 합니까? 즉, 한 셀에 NA를 넣으면 Na 시트로 이동하고 W#을 넣으면 잘못된 번호 시트 등으로 이동합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 이것은 매우 도움이되었습니다. 데이터 행을 두 번째 시트로 이동하지 않고 복사하지 않고 이 작업을 수행할 수 있는 방법이 있습니까? 그러면 데이터가 두 시트에 모두 남아 있게 될까요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 코드는 매우 도움이 되었지만 전체 행을 복사하는 대신 특정 행을 선택하여 다음 시트로 이동해야 합니다. 전체 행 대신에 범위를 정의하는 방법 Sub Cheezy() Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long I = Worksheets("Sheet1").UsedRange.Rows.Count J = Worksheets(" Sheet2").UsedRange.Rows.Count If J = 1 then If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 then J = 0 End If Set xRg = Worksheets("Sheet1").Range( "C1:C" & I) 오류 발생 시 다음 Application.ScreenUpdating = xRg의 각 xCell에 대해 False If CStr(xCell.Value) = "Done" 다음 xCell.전체 행.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1) J = J + 1 End If Next Application.ScreenUpdating = True End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
행(특정 셀)을 다른 시트의 특정 셀에 복사하려는 경우 코드는 무엇입니까? 그러나 또한 값을 기반으로 합니다. 예: 색상 제품 이미지 문자열 white blender 2 whiteblender2 black juicer 3 blackjuicer3 red tv 1 redtv1 green iron 4 greeniron4 다른 시트에 문자열을 복사하고 싶지만 이미지 열의 숫자는 복사해야 하는 횟수를 알려줍니다(따라서 이 경우 블렌더 문자열 2행으로 복사해야 함
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 아주 좋은 코드 조각, 아주 잘 작동합니다. 한 시트에서 다른 시트로가 아니라 한 테이블에서 다른 테이블로 행을 이동하도록 이 코드를 변경하는 방법은 무엇입니까? 감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 코드를 사용하려고 하는데 Dim xCell As Range에서 구문 오류가 발생합니다. 도와주시겠습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Sub Cheezy() Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long I = Worksheets("Sheet1").UsedRange.Rows.Count J = Worksheets("Sheet2").UsedRange.Rows.Count If J = 1 then If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0 End If Set xRg = Worksheets("Sheet1").Range("C1:C" & I) On Error Resume Next Application.ScreenUpdating = xRg의 각 xCell에 대해 False If CStr(xCell.Value) = "Done" then xCell.EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1) xCell. EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub 행을 sheet2로 이동하기 위해 두 번째 워크시트를 어떻게 추가할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 값으로 날짜를 포함하려면 무엇을 입력해야 합니까? 따라서 행에 날짜가 없으면 시트 1에 머물고 날짜가 있으면 시트 2로 이동합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
[인용] 안녕하세요 많은 도움이 되었습니다. 데이터 행을 두 번째 시트로 이동하지 않고 복사하지 않고 이 작업을 수행할 수 있는 방법이 있습니까? 그러면 데이터가 두 시트에 모두 남아 있게 될까요?매디 작성[/인용] 아무도 이것을 해결했습니까
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드에서 이 "xCell.EntireRow.Delete"를 제거합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
해당 코드 줄을 삭제하고 매크로를 다시 실행하면 Excel이 멈춥니다. 왜 그리고 어떻게 수정합니까?? 데이터가 두 워크시트에 있고 원본에서 삭제되지 않기를 원합니다. 티아
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이에 대한 답이 있습니까? 광산도 멈춥니다. 복사하고 싶지만 행을 삭제하고 싶지 않습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
아래 VBA 코드를 사용하면 행을 삭제하는 대신 복사만 할 수 있습니다.

서브치즈()
범위로 Dim xRg
xCell을 범위로 흐리게 처리
흐릿한 I As Long
딤 J As Long
딤케이 애즈롱
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
J = 1이면
Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0이면 J = 0
END IF
xRg 설정 = Worksheets("Sheet1").Range("C1:C" & I)
오류에 대한 다음 재개
Application.ScreenUpdating = False
K = 1 xRg.Count의 경우
CStr(xRg(K).Value) = "완료"이면
xRg(K).EntireRow.복사 대상:=Worksheets("Sheet2").Range("A" & J + 1)
J = J + 1
END IF
다음
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 나는 이것에 대한 변형을 찾고 있습니다. 스크립트를 지속적으로 실행하거나 해당 특정 필드의 값이 변경될 때마다 스크립트를 실행해야 합니다. 코드 자체는 작동하지만 독립적으로 실행해야 합니다. 자동화되었으면 합니다. 누구든지 도와줄 수 있습니까?

제쳐두고, 범위의 특정 셀에만 복사하기를 원할 경우 어떻게 수행합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 롭,

해당 필드의 셀이 변경될 때 스크립트를 자동으로 실행해야 하는 경우 아래 VBA 코드가 도움이 될 수 있습니다. 현재 시트(자동으로 이동할 행이 있는 시트) 탭을 마우스 오른쪽 버튼으로 클릭한 다음 컨텍스트 메뉴에서 코드 보기를 선택하십시오. 그런 다음 아래 VBA 스크립트를 복사하여 코드 창에 붙여넣습니다.

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

xCell을 범위로 흐리게 처리

흐릿한 I As Long
오류에 대한 다음 재개

Application.ScreenUpdating = False

xCell = Target(1) 설정
xCell.Value = "완료"인 경우
I = Worksheets("Sheet2").UsedRange.Rows.Count
내가 = 1이면

Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0이면 I = 0

END IF

xCell.EntireRow.Copy Worksheets("Sheet2").Range("A" & I + 1)

xCell.EntireRow.Delete
END IF

Application.ScreenUpdating = True

최종 하위


두 번째 질문의 경우 전체 행 대신 여러 셀을 복사한다는 의미입니까? 아니면 질문의 스크린샷을 제공해 주시겠습니까? 고맙습니다!

안부, 크리스탈
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
결정,


당신의 도움이 더 필요합니다 :)



여기에 다른 기준을 추가하는 방법, 예를 들어 완료 옆에 완료를 전송하고 싶습니다.


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

xCell을 범위로 흐리게 처리

흐릿한 I As Long
오류에 대한 다음 재개

Application.ScreenUpdating = False

xCell = Target(1) 설정
xCell.Value = "완료"인 경우
I = Worksheets("Sheet2").UsedRange.Rows.Count
내가 = 1이면

Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0이면 I = 0

END IF

xCell.EntireRow.Copy Worksheets("Sheet2").Range("A" & I + 1)

xCell.EntireRow.Delete
END IF

Application.ScreenUpdating = True

최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
하이 크리스탈
이것은 내가 웹에서 찾은 가장 유용한 정보이며 이 매크로는 내가 원하는 것을 수행합니다. 그러나 한 테이블에서 다른 테이블로 행을 이동하고 있습니다. 이 매크로를 사용하면 정보가 테이블 외부의 첫 번째 자유 라인이 아니라 테이블의 다음 자유 라인으로 이동합니까? 도울 수 있니?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드를 실행 중이고 열 I에 나타나는 오늘 날짜를 기준으로 행을 이동하려고 합니다. Range("B1:B" & I)를 Range(I1:I" & I)로 읽도록 변경했습니다. 귀하의 예에서 "완료"를 날짜로 지정합니다. 그러나 오늘 날짜가 필요에 따라 I 열뿐만 아니라 행의 아무 곳에나 나타나면 행이 대체 워크시트로 이동합니다. 이러한 일이 발생하는 이유와 행을 이동시킬 수 있는 방법에 대한 아이디어 오늘 날짜가 다른 열에 나타나는지 여부에 관계없이 오늘 날짜가 열 I에 있을 때만?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
데이비드에게,

코드는 범위와 변수 값을 날짜로 변경한 후에 잘 작동합니다. 코드의 날짜 형식은 워크시트에서 사용한 날짜 형식과 일치해야 합니다. 아니면 워크시트를 첨부하는 것이 편리한가요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈님,


코드와 스프레드시트 날짜 형식이 일치해야 한다는 말씀이 무슨 뜻인지 잘 모르겠습니다. 저는 VB 전문가가 아니라 초보자입니다. 내 스프레드시트에서 F열에 오늘 날짜를 행의 입력 날짜로 ctrl + : 형식으로 입력합니다. 나는 mm/dd/yyyy 형식으로 "I" 열에 만료 날짜를 입력합니다. 그러나 이것은 새 행을 입력하고 F열에 오늘 날짜를 입력할 때 문제가 발생합니다. 입력하는 즉시 행이 새 워크시트로 이동되기 때문입니다. 또한 통합 문서를 열 때마다 실행할 추가 코드가 나타나지 않습니다. 나에게 강요하지 않고 달리는 것. 아주 사소한 문제에 대해 죄송하지만 이러한 문제에 대한 제 의견을 들을 수 없습니다. 도움을 주시면 감사하겠습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
데이비드에게,

위에서 언급한 대로 정확히 시도했지만 제 경우에는 문제가 나타나지 않습니다. Excel 버전을 제공할 수 있습니까? 이 문제를 해결하는 데 도움이 되는 추가 정보가 필요합니다. 다시한번 번거롭게 해서 죄송합니다.

안부, 크리스탈
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
크리스탈, 이것이 관련된 워크시트입니다. 복사된 코드에서 L 열에서 "오늘 날짜까지"를 검색하고 있는 것을 볼 수 있으며 "오늘까지"가 해당 열에 있으면 해당 날짜가 포함된 행을 새 워크시트로 이동하고 싶습니다. 현재 행의 아무 곳에나 오늘 날짜를 입력하면(예: 오늘 청원이 발행된 경우 열 F) 자동으로 전체 행을 보관된 스프레드시트로 이동합니다. 나는 보통 F열에 ctrl + : 조합을 사용하여 오늘 날짜를 입력합니다.
또한 통합 문서를 열 때 이 이동이 이루어지기를 바랍니다. 현재 코드 표시로 이동한 다음 F5를 눌러야 합니다. 이를 수행하는 방법에 대한 모든 조언을 환영합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
불행히도 내 매크로 사용 통합 문서는 지원되지 않는 형식이라고 표시되어 업로드되지 않습니다. 이것은 Excel 2016에 있습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
데이비드에게,

다음 VBA 코드는 이를 달성하는 데 도움이 될 수 있습니다.

개인 서브 Workbook_Open ()
범위로 Dim xRg
xCell을 범위로 흐리게 처리
흐릿한 I As Long
딤 J As Long
I = Worksheets("현재 오아시스 기회").UsedRange.Rows.Count
J = 워크시트("ARCHIVED OASIS OPPORTUNITIES").UsedRange.Rows.Count
J = 1이면
Application.WorksheetFunction.CountA(Worksheets("ARCHIVED OASIS OPPORTUNITIES").UsedRange) = 0이면 J = 0
END IF
xRg = Worksheets("현재 오아시스 기회").Range("L1:L" & I) 설정
오류에 대한 다음 재개
Application.ScreenUpdating = False
xRg의 각 xCell에 대해
CStr(xCell.Value) = 날짜 다음인 경우
xCell.EntireRow.Copy Destination:=Worksheets("ARCHIVED OASIS OPPORTUNITIES").Range("A" & J + 1)
xCell.EntireRow.Delete
J = J + 1
END IF
다음
최종 하위

배송 시 요청 사항:
1. VBA 스크립트를 ThisWorkbook 코드 창에 넣어야 합니다.
2. 통합 문서는 Excel 매크로 사용 통합 문서로 저장해야 합니다.

위 작업 후 통합 문서를 열 때마다 L 열의 셀이 오늘 날짜에 도달하면 전체 행이 ARCHIVED 워크시트로 이동됩니다.

비스트 안부, 크리스탈
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
크리스탈님, 감사합니다.
오늘 날짜가 L 열에 있는 경우 효과적입니다. L 열에도 오늘 날짜를 포함하여 며칠 동안 통합 문서를 확인하지 않으면 이전 날짜가 자동으로 포함되도록 할 수 있습니까? 오늘의? 당신의 도움을 주셔서 대단히 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
데이비드에게,

죄송합니다. 질문을 받았는지 잘 모르겠습니다. 그렇다면 이전 날짜가 L 열에 표시되는 한 모든 행이 이동됩니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈님,

며칠 동안 워크시트를 열지 않고 열 L에 입력한 날짜가 이제 지났습니다. 즉, 열 L의 셀에 있는 날짜가 11년 2017월 13일이지만 XNUMX월 XNUMX일까지 워크시트를 열지 않으면 오늘 날짜까지의 모든 날짜에 대해 L 열의 모든 항목을 확인한 다음 해당 행을 새 시트로 이동합니다. 현재 귀하가 친절하게 제공한 코드를 사용하여 L 열의 현재 날짜가 있는 행만 새 시트로 이동하고 L 열의 이전 날짜를 남겨두고 현재 수동으로 새 시트로 이동합니다. 당신의 도움을 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
데이비드에게,



나는 당신의 요점을 이해합니다. 아래 VBA 스크립트를 시도하십시오. 통합 문서를 열면 L 열의 날짜가 오늘 날짜까지인 모든 행이 지정된 새 시트로 이동됩니다.



개인 서브 Workbook_Open ()
범위로 Dim xRg
범위로 희미한 xRgRtn
xCell을 범위로 흐리게 처리
Dim xLastRow As Long
흐릿한 I As Long
딤 J As Long
오류에 대한 다음 재개
xLastRow = Worksheets("현재 오아시스 기회").UsedRange.Rows.Count
xLastRow < 1이면 Sub 종료
J = 워크시트("ARCHIVED OASIS OPPORTUNITIES").UsedRange.Rows.Count
J = 1이면
Application.WorksheetFunction.CountA(Worksheets("ARCHIVED OASIS OPPORTUNITIES").UsedRange) = 0이면 J = 0
END IF
xRg = Worksheets("현재 오아시스 기회").Range("L1:L" & xLastRow) 설정
I = 2의 경우 xLastRow까지
xRg(I).Value > Date이면 Sub 종료
xRg(I).Value <= 날짜이면
xRg(I).EntireRow.Copy Destination:=Worksheets("ARCHIVED OASIS OPPORTUNITIES").Range("A" & J + 1)
xRg(I).전체 행.삭제
J = J + 1
나 = 나 - 1
END IF
다음
최종 하위

VBA 스크립트를 ThisWorkbook 코드 창에 넣고 통합 문서를 Excel 매크로 사용 통합 문서로 저장해야 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Crystal, 감사합니다. 잘 작동합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Crystal, 나는 코드가 작동한다고 응답하는 데 약간 성급했습니다. 오늘 통합 문서를 열었고 열 L 셀의 이전 날짜 항목이 포함된 행은 여전히 ​​"현재 오아시스 기회 워크시트"에 있으며 예상대로 "보관된 오아시스 워크시트"로 이동하지 않았습니다. 왜 그럴까요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
강조 표시된 셀은 위의 질문과 관련하여 열 L에 있으며 행을 새 워크시트로 이동하기 위한 기준(오늘 날짜까지)입니다. 이 이미지가 도움이 되기를 바랍니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
위 내용과 관련된 VBA 창의 복사본이기도 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Crystal, 나는 코드가 작동한다고 응답하는 데 약간 성급했습니다. 오늘 통합 문서를 열었고 열 L 셀의 이전 날짜 항목이 포함된 행은 여전히 ​​"현재 오아시스 기회 워크시트"에 있으며 예상대로 "보관된 오아시스 워크시트"로 이동하지 않았습니다. 왜 그럴까요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
결정,

통합 문서를 업로드할 수 없으므로 여기에 행과 열을 재현하겠습니다.

ABCDEFGHIJKL
# 유형 보류 권유 수정 # 발행일 질문 고객 납품 장소 프로젝트 제안 기한

1 SS SB 1234567 1 09/6/17 육군 이름 장소 드라이브 탱크 없음 09/10/17

아래 코드를 사용하여 L 열이 오늘 날짜에 도달하면 전체 행을 새 워크시트로 이동하고 싶습니다. 또한 며칠 동안 워크시트를 완료하지 않은 경우 L 열에서 "오늘 날짜까지" 검색을 사용하여 동일한 작업을 수행하고 싶습니다. 또한 가능하면 통합 문서를 열 때 자동으로 이 작업을 수행하고 싶습니다. 현재 행의 임의의 셀에 오늘 날짜를 입력하면(예: 데이터를 입력할 때 열 F), 전체 행이 보관 워크시트로 이동합니다. (엑셀 2016 사용)

[모듈 1 코드]

서브 데이브V()

범위로 Dim xRg

xCell을 범위로 흐리게 처리

흐릿한 I As Long

딤 J As Long

I = Worksheets("현재 오아시스 기회").UsedRange.Rows.Count

J = 워크시트("ARCHIVED OASIS OPPORTUNITIES").UsedRange.Rows.Count

J = 1이면
Application.WorksheetFunction.CountA(Worksheets("ARCHIVED OASIS OPPORTUNITIES").UsedRange) = 0이면 J = 0

END IF

xRg = Worksheets("현재 오아시스 기회").Range("L1:L" & I) 설정

오류에 대한 다음 재개

Application.ScreenUpdating = False

xRg의 각 xCell에 대해

CStr(xCell.Value) = 날짜 다음인 경우

xCell.EntireRow.Copy Destination:=Worksheets("ARCHIVED OASIS OPPORTUNITIES").Range("A" & J + 1)
xCell.EntireRow.Delete

J = J + 1
END IF

다음
Application.ScreenUpdating = True

최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
[시트 1 코드]

개인 하위 Worksheet_Change (범위로 ByVal 대상)
xCell을 범위로 흐리게 처리
흐릿한 I As Long
오류에 대한 다음 재개
Application.ScreenUpdating = False
xCell = Target(1) 설정
xCell.Value = 날짜 다음인 경우
I = Worksheets("ARCHIVED OASIS OPPORTUNITIES").UsedRange.Rows.Count
내가 = 1이면
If Application.WorksheetFunction.CountA(Worksheets("ARCHIVED OASIS OPPORTUNITIES").UsedRange) = 0 Then I = 0 End If
xCell.EntireRow.Copy Worksheets("ARCHIVED OASIS OPPORTUNITIES").Range("A" & I + 1)
xCell.EntireRow.Delete
END IF
Application.ScreenUpdating = True
최종 하위

위의 내용이 도움이 되기를 바랍니다. 하지만 저는 VBA 사람이 아니므로 코드가 필요한 작업을 수행하도록 하는 방법을 이해하지 못합니다. 도움을 주시면 감사하겠습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
스크립트에 큰 오류가 있습니다!

행 7의 C열에 "Done"이라는 단어가 있는 것을 감지하여 복사하고 행을 삭제한다고 가정해 보겠습니다.
행을 삭제하면 목록의 다음 행은 9이 아니라 8행이 됩니다. 7행을 제거하면 이제 8행 내용이 7행에 있고 모든 행이 1행 위로 올라갔기 때문입니다. 그래서 다음 체크할 행은 8행이었는데 지금은 9행에 있던 데이터를 담고 있어서 행을 삭제할 때마다 실제로 체크할 행을 건너뛰게 됩니다!!!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 샤우 알론,

당신의 의견에 감사드립니다. 오류가 수정되어 코드가 업데이트되었습니다. 어시스턴트를 해주셔서 감사합니다.

안부, 크리스탈
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
나는 이것이 나에게 일어나고 있다고 생각합니다. 코드가 업데이트되었다고 말하더라도 동일한 행을 계속해서 복사합니다. 이것이 내가 가진 것입니다.

서브치즈()
'Excel 2017/8/28용 Kutools로 업데이트됨
범위로 Dim xRg
xCell을 범위로 흐리게 처리
흐릿한 I As Long
딤 J As Long
딤케이 애즈롱
I = 워크시트("PURCHASE FORCAST").UsedRange.Rows.Count
J = 워크시트("구매 아카이브").UsedRange.Rows.Count
J = 1이면
Application.WorksheetFunction.CountA(Worksheets("구매 아카이브").UsedRange) = 0이면 J = 0
END IF
xRg 설정 = Worksheets("PURCHASE FORCAST").Range("H3:H" & I)
오류에 대한 다음 재개
Application.ScreenUpdating = False
K = 1 xRg.Count의 경우
CStr(xRg(K).Value) = "예"인 경우
xRg(K).EntireRow.Copy Destination:=Worksheets("구매 아카이브").Range("A" & J + 1)
xRg(K).전체 행.삭제
CStr(xRg(K).Value) = "예"인 경우
케이 = 케이 - 1
END IF
J = J + 1
END IF
다음
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 프레드,
코드를 실행할 때마다 코드는 지정된 범위를 검색하므로 이미 복사된 행을 알 수 없기 때문에 동일한 행을 계속해서 복사합니다. 동일한 행을 반복적으로 복사하지 않으려면 지정된 셀에 일치하는 값이 입력될 때 코드가 자동으로 실행되도록 할 수 있습니다.
"PURCHASE FORCAST" 워크시트에서 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 코드보기 컨텍스트 메뉴에서. 그런 다음 시트(코드) 창에서 다음 VBA 코드를 복사합니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Kutools for Excel 20220830
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("PURCHASE FORCAST").UsedRange.Rows.Count
J = Worksheets("Purchase Archive").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Purchase Archive").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("PURCHASE FORCAST").Range("H3:H" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Yes" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Purchase Archive").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Yes" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
누군가가이 작업을 도와 줄 수 있습니까? 내 파일과 일치해야 하는 부분을 변경하려고 시도했지만 이것이 표시되고 어떻게 해야 할지 모르겠습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
엑셀파일을 업로드하려고 하면 지원되지 않는 파일이라고 나옵니다. 죄송합니다...오늘 고생하셨습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
비슷한 작업에 대해 도움을 받고 싶지만 약간 다릅니다. 열당 약 5개의 숫자 열이 있습니다. 각 열에는 제목이 25000-1입니다. 열 5의 값이 1보다 크거나 또는 열 2가 3보다 큰 경우 전체 행을 다른 시트에 복사하고 싶습니다. , OR 열 4이 5보다 작음, OR 열 XNUMX가 XNUMX보다 큼 OR 열 XNUMX가 XNUMX보다 큼 등 가능합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이미지 업로드가 작동하지 않습니다... 죄송합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
이쪽의 업로드 버튼을 이용해 주세요.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
따라서 목표는 가스 중 하나가 공식에서 설정한 한계를 초과하는지 확인하는 것입니다. 전체 알이 새 시트에 복사됩니다.

도움을 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
첨부된 이미지
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 마이클,
Excel 추가 기능을 사용하여 이 문제를 해결할 수 있습니다. 여기에서 Excel 용 Kutools의 특정 셀 선택 유틸리티를 권장합니다. 이 유틸리티를 사용하면 지정된 열의 값이 숫자보다 크거나 작은 경우 certian 범위의 모든 행을 쉽게 선택할 수 있습니다. 필요한 모든 행을 선택한 후 수동으로 복사하여 새 워크시트에 붙여넣을 수 있습니다. 아래 첨부 이미지를 참조하십시오.

아래 하이퍼링크를 통해 이 기능에 대해 자세히 알아볼 수 있습니다.
https://www.extendoffice.com/product/kutools-for-excel/excel-select-specific-cells-rows.html
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 수식에 감사하지만 행을 다른 시트로 이동하려고 할 때 자동으로 발생하지 않는 문제가 있었습니다. 다른 공식을 알려주실 수 있나요? 그래서 셀의 값을 변경할 때마다 자동으로 이동했습니다.


감사
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 자낭,
실행 버튼을 수동으로 트리거할 때까지 코드는 자동으로 발생하지 않습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

이 매크로를 설정하고 싶지만 2개의 인수를 사용합니다. O 열의 셀 값을 기반으로 내 파일에서 매크로가 작동하도록 했습니다. 그러나 행을 이동하기 전에 매크로가 S 열도 채워져 있는지(또는 <> "") 확인하고 싶습니다. . 마지막으로 복사한 행을 두 번째 시트의 행과 동일한 형식으로 지정하고 싶습니다. 매크로가 완전히 바뀌나요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 휴그,
내가 당신을 올바르게 이해하고 있는지 모르겠습니다. 열 S의 셀이 채워지고 열 O의 셀에 특정 값이 동시에 포함되어 있으면 서식이 있는 행을 이동하시겠습니까? 그렇지 않으면 움직이지 않습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈입니다.

네, 그게 바로 제가 의미하는 바입니다. 사실 내 데이터는 프로젝트에 관한 것입니다. 내 열 O는 내 프로젝트의 상태이고 S는 내 프로젝트의 종료 날짜입니다.
내 사용자, 정보가 있고 정보를 삽입해야 하는 사람들이 상태가 "닫힘"이고 "종료 날짜"를 삽입한 경우에만 프로젝트를 "보관"할 수 있기를 바랍니다.


이것이 상황을 명확히하는 데 도움이되기를 바랍니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 휴그,
답변이 너무 늦어 죄송합니다. 다음 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. 이 문서의 단계에 따라 VBA 스크립트를 적용하십시오.

하위 MoveRowBasedOnCellValue()
Dim xRgStatus As 범위
Dim xRgDate를 범위로
흐릿한 I As Long
딤 J As Long
딤케이 애즈롱
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
J = 1이면
Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0이면 J = 0
END IF
xRgStatus 설정 = Worksheets("Sheet1").Range("O1:O" & I)
xRgDate = Worksheets("Sheet1").Range("S1:S" & I) 설정
오류에 대한 다음 재개
Application.ScreenUpdating = False
Application.CutCopyMode = False
xRgStatus(1).EntireRow.Copy
Worksheets("Sheet2").Range("A" & J + 1).PasteSpecial xlPasteAllUsingSourceTheme
J = J + 1
K = 2의 경우 xRgStatus.Count로
CStr(xRgStatus(K).Value) = "닫힘"인 경우 다음
If (xRgDate(K).Value <> "") And (TypeName(xRgDate(K).Value) = "Date") 그러면
xRgStatus(K).EntireRow.Copy
Worksheets("Sheet2").Range("A" & J + 1).PasteSpecial xlPasteAllUsingSourceTheme
J = J + 1
END IF
END IF
다음
Application.CutCopyMode = 참
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 크리스탈,

당신의 도움을 주셔서 정말 감사합니다!

감사합니다

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


행을 이동하는 대신 어떻게 복사합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요


나는 이것이 몇 번 게시되었다는 것을 알고 있지만 답을 찾을 수 없습니다. 자료를 새 시트에 복사하고 원본 시트에서 삭제하지 않으려면 어떻게 해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 마이크,
행을 삭제하는 대신 복사하려는 경우 아래 VBA 코드가 도움이 될 수 있습니다. 당신의 의견에 감사드립니다!

서브치즈()
범위로 Dim xRg
xCell을 범위로 흐리게 처리
흐릿한 I As Long
딤 J As Long
딤케이 애즈롱
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
J = 1이면
Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0이면 J = 0
END IF
xRg 설정 = Worksheets("Sheet1").Range("C1:C" & I)
오류에 대한 다음 재개
Application.ScreenUpdating = False
K = 1 xRg.Count의 경우
CStr(xRg(K).Value) = "완료"이면
xRg(K).EntireRow.복사 대상:=Worksheets("Sheet2").Range("A" & J + 1)
J = J + 1
END IF
다음
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

매크로를 처음 사용하는데 특정 값 뒤에 데이터를 붙여넣고 열 끝까지 반복할 수 있습니까?
이 같은 :

"Color" 다음에 "Blue"를 전송합니다.

A1 = 파란색
A5= 색상
A6= (여기서 "파란색" 전송)
등등 ...
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
존님께,
셀에 열에 "색상"이 포함된 경우 첫 번째 셀의 텍스트를 "색상" 아래의 셀에 복사하고 이 텍스트를 열 끝까지 복사하는 것을 반복한다는 의미입니까?
아직 코멘트가 없습니다
더보기
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호