Excel 2007: 이전 행이 채워지면 자동으로 행 삽입

Excel 2007: 이전 행이 채워지면 자동으로 행 삽입

고객에게 인쇄된 영수증으로 사용할 수 있는 워크시트를 만들고 싶습니다. 기본 레이아웃은 다음과 같습니다.

  • 고객 연락처 세부 정보(이름, 주소 등)는 비어 있을 수 있는 고정 필드입니다.
  • 헤더 행: "항목|수량|가격|총액"
  • 고객이 구매한 각 상품에 대해 하나씩, 원하는 수의 라인을 포함하는 동적 테이블
  • 총 기사 수와 총 금액이 포함된 바닥글 행

제가 고민하고 있는 것은 동적 테이블을 작동시키는 방법입니다. 현재는 각 새 기사에 대해 수동으로 행을 삽입하지만 매우 바쁜 상황에서는 이것이 번거롭습니다. 기본적으로 빈 줄 하나를 표시하고 이전 줄에 데이터가 포함될 때마다 다음 줄을 삽입하여 자동으로 바닥글 행을 한 줄 아래로 이동하고 총 수량을 계산하는 데 사용되는 수식을 업데이트하고 싶습니다. 그리고 금액.

이것이 가능합니까?

답변1

귀하와 이를 시도하는 모든 사람에게 다음과 같이 경고합니다.

지금 당장은 다음 사항에 대해 생각해야 합니다.

  • 고객당 얼마나 자주 사용합니까?
  • 고객이 몇 명 있어요?
  • 이 항목을 어떻게 입력하나요?
  • 얼마나 많은 다른 아이템이 있나요?

이것이 가장 중요한 질문입니다. 나는 꽤 해냈다정확히, 한 달에 3번의 영수증을 받는 아주 작은 회사에서 당신이 하려는 일입니다.

언제나 그렇듯이 빠르고 저렴하고 ExcelOnly를 이용해 주세요. 하지만 위의 질문을 한 사람은 아무도 없었습니다. 주로 cheap & excelOnly 때문입니다. 그리고 이제는 영수증을 검색하고 수정할 때마다, 주로 항목을 추가할 때 얼마나 많은 시간이 낭비되는지 너무나 분명합니다. 동일한 항목이 얼마나 다양한 형태로 존재하는지 말할 것도 없습니다. 그러나 이를 Excel로 수정하는 것은 가능하지만 IMHO는 정말 고통스럽습니다. 고객도 이제 EPR이 설정되었음을 확신했습니다.

이것은 데이터베이스 작업입니다. 이는 데이터베이스 작업의 가장 좋은 예 중 하나와 같습니다!

또한 이는 소규모 기업의 ERP 시스템에도 가치가 있을 수 있습니다. 여기 독일에서는 JTL-Wawi를 추천하고 싶습니다.

그러나 이것이 너무 큰 도약이라면 Access 사용을 고려해야 합니다.

몇 가지 장점:

  • 고객을 관리할 수 있습니다
  • 당신은 당신의 항목을 관리할 수 있습니다
  • 역동적인 행동을 움직여서 접근할 수 있습니다.
  • 영수증을 쉽게 관리할 수 있어요
  • 여전히 Excel을 출력 시스템으로 사용할 수 있습니다

이것이 어떻게 작동할까요?

고객과 품목, 영수증을 위한 테이블이 몇 개 있을 것입니다. 영수증 테이블은 고객을 해당 품목 및 기타 영수증 관련 속성에 연결합니다.

그런 다음 기본 영수증에 대한 디자인 보고서를 생성하고 액세스에서 인쇄할 수 있습니다. 또는 Excel을 사용하여 영수증을 선택하고 데이터를 가져와 인쇄할 수 있습니다. 데이터가 미리 결정되어 있기 때문에 들어오는 행/열 수와 해당 컨텍스트가 무엇인지 알 수 있습니다.

하지만 - 이 바퀴는 이미 여러 번 발명되었으므로 이미 존재하는 바퀴를 살펴보아야 합니다. ;)

편집하다

귀하의 행동 요청에 기반한 솔루션은 여기에서 이 시도를 사용할 수 있습니다.

https://stackoverflow.com/questions/12604274/excel-vba-is-there-a-textchanging-textchanged-or-a-similar-event-or-how-to/12604570#12604570

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = clngColumnRightToLastGrade Then
    Application.EnableEvents = False
    'offset selection, one row down, two cols to left
    Target.EntireRow.Insert (xlShiftDown) 'insert new row
    Target.Offset(1, -2).Select
    Application.EnableEvents = True
  End If
End Sub

물론 Change대신 이벤트를 사용할 수도 있으며 이 동작을 동적 목록의 최대 범위나 해당 워크시트로 제한해야 할 수도 있습니다.

또는 여기에서 이 줄을 실행하려면 단축 키별로 매크로를 사용할 수 있도록 만드세요.

Target.EntireRow.Insert (xlShiftDown) 'insert new row

범위를 가지려면 현재 선택된 셀을 결정해야 합니다 Target.

관련 정보