
Excel에 숫자 목록이 포함된 시트가 있습니다. 때로는 X 단위를 한 셀에서 다른 셀로 이동하고 싶을 때가 있습니다.
아이들로 구성된 교실이 있고 각 아이들은 일정한 수의 구슬을 갖고 있다고 가정해 보겠습니다. 시트에는 2개의 열이 있습니다. 첫 번째 열은 이름이고 두 번째 열은 구슬입니다. 존은 빌에게 구슬 375개를 줍니다. 시트를 업데이트하고 싶습니다.
현재 저는 계산기를 꺼내서 뺄셈과 덧셈을 하고 수동으로 셀을 업데이트합니다.
이는 번거롭고 오류가 발생하기 쉽습니다. 더 좋은 방법이 있나요?
(셀에 "=8300+375"라고 쓸 수 있다는 건 알지만 결국에는 각 셀이 엄청나게 긴 공식을 가지게 됩니다..)
답변1
답변2
마테 유하스(Máté Juhász)이 게시물은 더 빠르고 시간도 절약해 주기 때문에 VBA 매크로를 제안하도록 영감을 주었습니다. 그리고 나는 당신이 그것을 감당하실 수 있다고 믿습니다.
작동 방식:
- Range 에 데이터가 있다고 가정합니다
A2:B4
. 빼려는 값을 에 넣으세요
C2:C4
.에서개발자 탭, 클릭디자인 모드
그 다음에끼워 넣다& 에서ActiveX 컨트롤
딸깍 하는 소리명령 버튼 아이콘
그리고 시트 에 그립니다 .다음을 클릭하세요.명령 버튼, VB 편집기 Windows에 도달합니다.
복사 붙여 넣기이 코드는
개인 하위 CommandButton1_Click()
서브 끝.
Range("C2:C4").Select Selection.Copy Range("B2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, SkipBlanks:= _ False, Transpose:=False Range("C2:C4").Select Selection.ClearContents Application.CutCopyMode = False
VB 편집기 Windows에서 클릭파일 메뉴그럼 때려닫기 및 Microsoft Excel로 돌아가기.
마지막으로 클릭하세요명령 버튼.
에서 새로운 값을 찾을 수 있습니다 Column B
(스크린샷 확인).
주의
셀의 새 값에서만 이전 값을 빼려면 이 VBA 코드를 사용할 수 있습니다.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 2 And Target.Row = 1 Then
NewVal = Range("B1").Value
Application.EnableEvents = False
Application.Undo
OldVal = Range("B1").Value
Range("B1").Value = NewVal
Range("B1").Value = NewVal - OldVal
Application.EnableEvents = True
End If
End Sub
누르다Alt+F11VB 편집기를 열고복사 붙여 넣기위에 표시된 코드는 다음과 같습니다.표준 모듈.
의 값을 덮어쓰자마자
B1
코드는
이를 이전 값에서 빼고 새 값으로 다시 작성합니다B1
.
필요에 따라 데이터 범위를 조정하십시오.