2017-03-22 15 views
0

많은 그룹과 하위 그룹이 포함 된 Excel 시트가 있습니다. 각 하위 그룹에는 자체 소계가 있습니다. 그리고 하위 그룹에 필요한 줄 수를 알 수없는 한 각 하위 그룹에 대해 3 줄만 비워두고 자동 복사 및 삽입 된 행 삽입 매크로를 트리거하는 버튼을 만들었습니다.소계 보호를 위해 소계 범위의 첫 번째 행에 새 행을 추가하는 것을 피하는 방법

이제 하위 그룹의 첫 번째 행과 마지막 행에있는 동안 사용자가 버튼을 트리거하지 않도록해야합니다. (첫 번째 행을 복사하여 삽입하면 부분합 수식이 범위를 벗어나기 때문에 새로 추가 된 행을 인식하지 못하고 마지막 행에 사용자가 위에 복사하지 못하도록하는 다른 특정 수식이 있습니다)

I 너무 오랫동안 다른 Excel 블로그와 SO를 검색해 왔지만 내 목록 때문에 매우 역동적이었고 많은 다른 부분합이 있었기 때문에 그 중 어느 것도 내 경우에는 적합하지 않았습니다.

복사 및 위의 삽입을 피하기 위해 내 다른 부분 범위 (및 제목 행)의 첫 번째 행과 마지막 행을 모두 정의하려면 어떻게해야합니까?

Please also refer to the printscreen of my excel sheet

답변

1

나는이 작업을 수행하는 두 가지 방법을 상상할 수있다. "새 줄"버튼을 확인을 누르면 현재 행은 제목/소제목의 형식을 확인하여 어떤 ...

  1. (등 예를 들어, 특정 배경색) 인 경우.

    If Not Worksheets("Sheet1").Range("A" & iRow).Interior.Color = 15004911 Then 
        'copy that row 
    End If 
    
  2. 또는 헤더 행 또는 비 복사 가능한 행으로 행을 지정하는 추가 헬퍼 컬럼을 사용하여

    . 도우미 열을 보이지 않게하려면 숨기면됩니다.

    If Not Worksheets("Sheet1").Range("X" & iRow).Value = "Header" Then 
        'copy that row 
    End If 
    'where X is the helper column 
    

    그리고 헤드 라인 행이면 복사 프로세스를 거부합니다.

+0

두 번째 옵션은 가능한 옵션처럼 보이지만 많은 열과 매크로가 있습니다.그들 중 일부는 모든 열이 숨겨져있는 경우에만 작동하므로 (% 100은 아니지만) 매크로 중 하나에 의해 시트의 어딘가에 숨겨진 비 숨겨진 열이있을 수 있습니다. 따라서 사용자에게 언제든지 숨기기를 원하지 않습니다. 제가 생각하는 도구의 전문성에 약간 위험합니다. 첫 번째 옵션의 경우 이미 다른 색상을 사용하고 있기 때문에 다시 똑같을 것입니다. – Mertinc

+0

@Mertinc 그래,하지만 우리는 당신이 현재 행이 그 문제를 해결할 행의 유형을 알아 내야한다는 데 동의한다. A) 복제가 허용되는 행과 B) 중복되지 않도록 허용 된 행을 구별하는 것 외에 다른 방법은 없습니다. 어떤 행 유형을 결정하려면 마커 (형식, 도우미 열, 내용 등)로 식별해야합니다. 그래서 당신의 운동은 그 일에 적합한 마커를 찾는 것입니다. 달에가보고 싶다고 말할 수는 없지만, 로켓 만 달에 날아갈 수있는 경우에는 로켓을 사용하고 싶지 않습니다. 당신은 적은 악을 선택해야합니다. –

+0

안녕하세요 Peh, 오늘 아주 오랜 시간이 지난 후에 저는이 문제에 대해 뭔가를하고 세포의 배경색을 바꾸어서 제가 그랬던 것처럼 그들을 복사하기를 원하지 않았습니다. (그러나 나는 인쇄 레이아웃의 열을 선택합니다. 그래서이 다른 색은 아무 곳에 나 표시되지 않습니다.) 대답으로 이것을 선택할 수 있도록 그 제안에 대한 답을 늘리시겠습니까. (예를 들어 복사 할 특정 행을 피할 수 있습니까? 예를 들어, 배경색을 기준으로 복사 할 수 있습니다.) 그래서 답안에'if Range ("A"& row) .interior.color = 15004911 그런 다음이 전체 행을 복사하지 마십시오.' – Mertinc

1

프로그래밍과 관련이없는 한 가지 방법은 합계 범위가 변경되지 않는 행으로 확장됩니다. 따라서 헤더 행에서 부분합을 시작할 수 있습니다 (해당 행의 관련 셀에 내용이 없다고 가정). 또 다른 방법은 각 합계 범위의 위쪽과 아래쪽에 숨겨진 행을 추가하는 것입니다.이 합계는 합계 범위에 포함됩니다. 따라서 행 10에서 14까지를 더하게되지만 10과 14는 숨겨져 (비어 있음) 사용자는 단지 11, 12 및 13 행을 표시하게됩니다. 새 행을 추가하면 숨겨진 행이 아래로 밀리고 부분합이 확장됩니다.

또 다른 방법은 간접 기능을 사용하는 것입니다.

, 그것은 관계없이 항상 사이에 추가되는 행의 바로 위의 셀을 참조 할 것이다 당신이 하한에 대한 간접 사용하는 경우 수식이

=SUBTOTAL(9,H7:H10) 

이었다 말해봐.

=SUBTOTAL(9,H7:INDIRECT("H"&ROW()-1)) 

그리고 한 걸음 더 나아가서 제목 제목 행을 앵커로 사용하여 제목과 부분합 사이의 간격을 항상 늘립니다.

=SUBTOTAL(9,INDIRECT("H"&ROW(H6)+1):INDIRECT("H"&ROW()-1)) 
+0

머리글 행에 이미 자체 소계 공식이 있으므로 첫 번째 옵션을 사용할 수 없습니다. 그리고 행 번호는 사용자에게 중요하기 때문에 두 번째 행에 대해서는 숨겨진 행을 원하지 않습니다. 나는 그들이 혼란스러워 지길 원치 않는다. – Mertinc

+0

간접비 사용은 어떻습니까? – Kev

+0

그 공식은 부분합 공식에 매우 똑똑합니다. (단, 부분합 수식 내에서 간접 사용으로 인해 F2를 클릭하여 범위를 쉽게 볼 수는 없음) 그러나 여전히 적용 할 수 있습니다 (사용자가 수식을보고 편집 할 수 있도록 잠겨 있음)하지만 제목과 아래 행을 피하는 방법은 무엇입니까? 복사 및 삽입 할 것인가? – Mertinc