A1, A2, A3라는 3개의 셀이 있는 열이 있습니다. 3개 셀 중 하나를 늘리거나 줄일 때 3개 셀의 수치 합계가 일정하게 유지되기를 원합니다. 즉, 다른 2개의 셀 사이에 고르게 분포되려면 셀의 증가 또는 감소가 필요합니다. 예를 들어, 3 + 5 + 2 = 10으로 시작합니다. 5를 6으로 변경하면 자동으로 2.5 + 6 + 1.5 = 10이 됩니다. 실제로는 상수 100에 해당하는 약 20개의 셀이 있다는 점을 명심하십시오. 정말 감사합니다.
답변1
채우다A1~을 통해A20다음과 같은 값을 추가합니다.100:
그런 다음 다음을 배치하십시오.이벤트 매크로워크시트 코드 영역에서:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, Delta As Double
Set rng = Range("A1:A20")
If Intersect(Target, rng) Is Nothing Then Exit Sub
Delta = (100 - Range("A21").Value) / 19
Application.EnableEvents = False
For Each r In rng
If r.Address <> Target.Address Then
r.Value = r.Value + Delta
End If
Next r
Application.EnableEvents = True
End Sub
매크로가 설치되고 활성화되면 매크로는 다음 값의 변경 사항을 감지합니다.A1~을 통해A20100을 유지하려면 다른 값을 조정하세요. 한 번에 하나의 셀만 변경하세요.
워크시트 코드이므로 설치가 매우 쉽고 자동으로 사용됩니다.
- Excel 창 하단 근처에 있는 탭 이름을 마우스 오른쪽 버튼으로 클릭합니다.
- 코드 보기를 선택하면 VBE 창이 나타납니다.
- 내용을 붙여넣고 VBE 창을 닫습니다.
고민이 된다면 먼저 시험 워크시트에서 시도해 보세요.
통합 문서를 저장하면 매크로도 함께 저장됩니다. 2003 이후 Excel 버전을 사용하는 경우 파일을 .xlsx가 아닌 .xlsm으로 저장해야 합니다.
매크로를 제거하려면:
- 위와 같이 VBE 창을 불러옵니다.
- 코드를 지워라
- VBE 창을 닫습니다
일반적인 매크로에 대해 자세히 알아보려면 다음을 참조하세요.
http://www.mvps.org/dmcritchie/excel/getstarted.htm
그리고
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
이벤트 매크로(워크시트 코드)에 대해 자세히 알아보려면 다음을 참조하세요.
http://www.mvps.org/dmcritchie/excel/event.htm
이 작업을 수행하려면 매크로를 활성화해야 합니다!