루프 열의 값 변경에 따라 범위를 새 워크 시트에 붙여 넣습니다.

vanw0001

나는 VBA를 능가하는 합리적으로 새롭고 매크로를 개발하려는 벽에 부딪 혔습니다. A에서 S까지의 데이터를 포함하는 액세스 데이터베이스의 출력이 있습니다. 출력에는 가변 개수의 행이 있지만 항상 헤더 행이 포함되어 있습니다. C 열에는 여러 행에 공통적 인 값이 있습니다 (예 : C2 : C7은 '바나나', C8 : C9는 '바스켓', C10 : C21은 '버킷'). C 열의 공통 값은 동적입니다. C 열의 값은 항상 연속적입니다.

C 열의 값이 변경되는시기를 식별하고 C 열 (및 머리글 행)에 동일한 값을 가진 행에 대해 A ~ S 열을 C 열 값으로 저장된 새 통합 문서에 붙여 넣는 매크로를 만들려고했습니다. 파일 이름으로 원본 통합 문서에서이 범위를 삭제하고 C 열의 값 수를 반복합니다. C 열에 3 개의 값이 있으면 내 코드가 작동하는 것 같습니다. 그러나 이보다 더 많은 경우 코드는 C 열의 값 변경을 찾기위한 기준을 무시하고 C 열에 여러 값을 포함하는 범위를 가진 새 통합 문서를 만듭니다.

나는 루프의 각 반복마다 변수가 지워지지 않는다는 사실 때문일 수 있다고 생각했지만 웹에서 본 모든 것은 이것이 문제가되지 않아야 함을 시사합니다. If 문은 새 통합 문서 코드를 msgbox로 바꾸었을 때 작동하는 것 같지만 통합 문서 코드는 그렇지 않습니다. For 루프의 문제라고 생각하지만 어떻게 해결해야할지 모르겠습니다. 나는 수많은 SO 페이지를 검색하고 보았지만 사용할 수있는 답을 찾지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다.

내 코드는 다음과 같습니다.

Sub number()

    Dim wbI As Workbook, wbO As Workbook
    Dim wsI As Worksheet, wsO As Worksheet
    Dim cell, rng As Range
    Set rng = Range("C2:C97")

    For Each cell In rng
        If cell.Value <> cell.Offset(1, 0).Value Then

        Set wbI = ActiveWorkbook
        Set wsI = wbI.Worksheets("Worklist")
        Set wbO = Workbooks.Add

            With wbO
                 Set wsO = wbO.Sheets("Sheet1")
                .SaveAs Filename:="C:\Users\svanwo0\Desktop\" & cell & ".xls", FileFormat:=56
                wsI.Range("A1:S1").Copy
                wsO.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                wsI.Rows("2:" & cell.Row).Copy
                wsO.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                .Close SaveChanges:=True
            End With
        Set wbI = Nothing
        Set wsI = Nothing
        Set wbO = Nothing
        Set wsO = Nothing

        Rows("2:" & cell.Row).EntireRow.Delete (xlUp)

        End If
    Next cell


End Sub

미리 감사드립니다

vanw0001

스콧 크레인

이것은 루프에서 앞으로 나아가고 줄을 삭제하면 문제가 발생하는 경우 중 하나입니다.

반복 할 범위를 설정했습니다. 삭제하면 데이터가 위로 이동되지만 여전히 다음 물리적 행으로 이동하므로 매번 재설정되지 않습니다.

기본적으로 날짜의 전체 영역을 삭제하고 있기 때문에 삭제가 끝날 때까지 기다릴 것입니다. 다음 데이터 블록의 시작 행을 유지하는 변수를 만듭니다.

Sub number()

    Dim wbI As Workbook, wbO As Workbook
    Dim wsI As Worksheet, wsO As Worksheet
    Dim cell, rng As Range
    Dim stRw As Long
    Set rng = Range("C2:C97")
    stRw = 2
    For Each cell In rng
        If cell.Value <> cell.Offset(1, 0).Value Then

        Set wbI = ActiveWorkbook
        Set wsI = wbI.Worksheets("Worklist")
        Set wbO = Workbooks.Add

            With wbO
                 Set wsO = wbO.Sheets("Sheet1")
                .SaveAs Filename:="C:\Users\svanwo0\Desktop\" & cell & ".xls", FileFormat:=56
                wsI.Range("A1:S1").Copy
                wsO.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                wsI.Rows(stRw & ":" & cell.Row).Copy
                wsO.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                .Close SaveChanges:=True
                stRw = cell.Row + 1
            End With
        Set wbI = Nothing
        Set wsI = Nothing
        Set wbO = Nothing
        Set wsO = Nothing



        End If
    Next cell
    Rows("2:97").EntireRow.Delete (xlUp)

End Sub

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

한 워크 시트에서 셀 범위를 복사하여 수식이 아닌 값으로 다른 워크 시트에 붙여 넣습니다.

분류에서Dev

두 범위의 셀 값에 따라 복사-붙여 넣기

분류에서Dev

시트 1에서 범위를 복사하여 루프의 다음 시트에있는 다음 빈 행에 붙여 넣습니다.

분류에서Dev

Excel의 새 워크 시트에 붙여 넣기 복사

분류에서Dev

범위 순환, 별도의 워크 시트에서 값 찾기, 값 복사 및 반환 및 붙여 넣기

분류에서Dev

워크 시트의 범위를 복사하고 새 사용자 지정 파일에 붙여 넣기 및 다른 이름으로 저장

분류에서Dev

VBA : 셀 붙여 넣기 범위의 값을 포함하는 모든 워크 시트에서

분류에서Dev

루프의 새 열에 열 이름 붙여 넣기

분류에서Dev

범위를 통해 루프, 값 = "x"인 경우 셀 8 열의 값을 오른쪽에있는 다른 워크 시트로 복사

분류에서Dev

각 워크 시트에서 범위를 찾고 각 범위를 하나의 워크 시트에 붙여 넣는 방법

분류에서Dev

워크 시트에 첨부 된 이미지를 복사하여 새 워크 시트에 붙여 넣는 방법

분류에서Dev

한 워크 시트의 데이터를 다른 워크 시트의 데이터 변경 아래에 붙여 넣는 방법은 무엇입니까?

분류에서Dev

루프 내의 다른 열 값에 따라 열 값을 nan으로 변경

분류에서Dev

범위 내의 셀에서 값을 복사하여 범위 내의 임의의 셀에 붙여 넣습니다.

분류에서Dev

한 워크 시트에서 데이터를 가져와 두 셀의 값이 같은지 여부에 따라 다른 워크 시트에 입력

분류에서Dev

Excel-선택한 셀을 복사하여 다른 워크 시트의 열 끝에 붙여 넣습니다.

분류에서Dev

배열의 요소 값을 변경하고 결과를 명명 된 범위에 붙여 넣기

분류에서Dev

특정 값을 복사하여 조건에 따라 Google Sheet의 다른 시트의 특정 셀에 붙여 넣습니다.

분류에서Dev

미리 결정된 열의 다른 워크 시트에 특정 셀 값을 붙여 넣는 VBA

분류에서Dev

열 간의 일치에 따라 두 파일을 붙여 넣습니다.

분류에서Dev

해당 워크 시트의 VBA 코드없이 워크 시트를 새 통합 문서에 복사 / 붙여 넣기

분류에서Dev

루프를 사용하여 한 워크 시트에서 다른 워크 시트로 값 바꾸기

분류에서Dev

여러 워크 시트에서 특정 범위를 복사하여 각 열을 한 줄로 바꾸어 하나의 워크 시트에 붙여 넣으려고합니다.

분류에서Dev

R의 다른 데이터 프레임에 값이 있는지 여부에 따라 새 열에 새 값 추가

분류에서Dev

다른 시트에 값을 붙여 넣는 VBA 루프

분류에서Dev

값이 범위에 속하는 경우 다른 열의 조건에 따라 새 열 만들기

분류에서Dev

한 통합 문서에서 해당 워크 시트 만있는 (붙여 넣기 값 사용) 다른 새 통합 문서로 워크 시트를 복사하려면 어떻게합니까?

분류에서Dev

셀 값에 따라 행과 열 복사 및 붙여 넣기

분류에서Dev

VBA를 사용하여 Excel의 새 시트에 동적 범위 복사 및 붙여 넣기

Related 관련 기사

  1. 1

    한 워크 시트에서 셀 범위를 복사하여 수식이 아닌 값으로 다른 워크 시트에 붙여 넣습니다.

  2. 2

    두 범위의 셀 값에 따라 복사-붙여 넣기

  3. 3

    시트 1에서 범위를 복사하여 루프의 다음 시트에있는 다음 빈 행에 붙여 넣습니다.

  4. 4

    Excel의 새 워크 시트에 붙여 넣기 복사

  5. 5

    범위 순환, 별도의 워크 시트에서 값 찾기, 값 복사 및 반환 및 붙여 넣기

  6. 6

    워크 시트의 범위를 복사하고 새 사용자 지정 파일에 붙여 넣기 및 다른 이름으로 저장

  7. 7

    VBA : 셀 붙여 넣기 범위의 값을 포함하는 모든 워크 시트에서

  8. 8

    루프의 새 열에 열 이름 붙여 넣기

  9. 9

    범위를 통해 루프, 값 = "x"인 경우 셀 8 열의 값을 오른쪽에있는 다른 워크 시트로 복사

  10. 10

    각 워크 시트에서 범위를 찾고 각 범위를 하나의 워크 시트에 붙여 넣는 방법

  11. 11

    워크 시트에 첨부 된 이미지를 복사하여 새 워크 시트에 붙여 넣는 방법

  12. 12

    한 워크 시트의 데이터를 다른 워크 시트의 데이터 변경 아래에 붙여 넣는 방법은 무엇입니까?

  13. 13

    루프 내의 다른 열 값에 따라 열 값을 nan으로 변경

  14. 14

    범위 내의 셀에서 값을 복사하여 범위 내의 임의의 셀에 붙여 넣습니다.

  15. 15

    한 워크 시트에서 데이터를 가져와 두 셀의 값이 같은지 여부에 따라 다른 워크 시트에 입력

  16. 16

    Excel-선택한 셀을 복사하여 다른 워크 시트의 열 끝에 붙여 넣습니다.

  17. 17

    배열의 요소 값을 변경하고 결과를 명명 된 범위에 붙여 넣기

  18. 18

    특정 값을 복사하여 조건에 따라 Google Sheet의 다른 시트의 특정 셀에 붙여 넣습니다.

  19. 19

    미리 결정된 열의 다른 워크 시트에 특정 셀 값을 붙여 넣는 VBA

  20. 20

    열 간의 일치에 따라 두 파일을 붙여 넣습니다.

  21. 21

    해당 워크 시트의 VBA 코드없이 워크 시트를 새 통합 문서에 복사 / 붙여 넣기

  22. 22

    루프를 사용하여 한 워크 시트에서 다른 워크 시트로 값 바꾸기

  23. 23

    여러 워크 시트에서 특정 범위를 복사하여 각 열을 한 줄로 바꾸어 하나의 워크 시트에 붙여 넣으려고합니다.

  24. 24

    R의 다른 데이터 프레임에 값이 있는지 여부에 따라 새 열에 새 값 추가

  25. 25

    다른 시트에 값을 붙여 넣는 VBA 루프

  26. 26

    값이 범위에 속하는 경우 다른 열의 조건에 따라 새 열 만들기

  27. 27

    한 통합 문서에서 해당 워크 시트 만있는 (붙여 넣기 값 사용) 다른 새 통합 문서로 워크 시트를 복사하려면 어떻게합니까?

  28. 28

    셀 값에 따라 행과 열 복사 및 붙여 넣기

  29. 29

    VBA를 사용하여 Excel의 새 시트에 동적 범위 복사 및 붙여 넣기

뜨겁다태그

보관