엑셀 VBA에서 지폐와 동전
아래 우리는 지폐와 동전에 돈의 양을 분할 엑셀 VBA에서 프로그램을 볼 것이다.
상황 :
워크 시트 변경 이벤트를 만듭니다. 워크 시트에서 셀을 변경할 때 워크 시트 변경 이벤트에 추가 된 코드는 엑셀 VBA에 의해 실행됩니다.
-
Visual Basic 편집기.
프로젝트 탐색기에서 시트 1 (Sheet1의) 2. 두 번 클릭합니다.
왼쪽 드롭 다운 목록에서 워크 시트를 선택합니다. 오른쪽 드롭 다운 목록에서 변경을 선택합니다.
워크 시트 변경 이벤트에 다음 코드 줄을 추가합니다
Double 형의 변수라는 금액을 입력 정수의 i 변수를 선언하십시오.
Dim amount As Double, i As Integer
-
워크 시트 변경 이벤트는 Sheet1의 모든 변경 사항을 수신합니다. 우리는 뭔가 셀 B2에서 변경하는 경우 엑셀 VBA 뭔가를하고 싶다. 이를 위해, 다음 코드 줄을 추가 :
If Target.Address = "$B$2" Then
-
우리는 전지 B2의 값으로 가변 량을 초기화한다.
amount = Range("B2").Value
-
우리는 주파수가 범위를 비 웁니다.
Range("B5:B16").Value = ""
-
지금은 돈을 입력 한 금액을 분할하는 시간이다. 우리는 다음의 루프를 시작합니다.
For i = 5 To 16
-
우리는 마 루프 동안 구조의 사용을 만들 것입니다. 이 단어 사이에 코드가 긴 사실이지만 마십시오 후 일부로으로 반복됩니다. 우리는 금액이 큰 경우 또는 세포 (I, 1) .value에 동일 엑셀 VBA만큼 10 단계에서 코드 라인을 반복합니다.
Do While amount >= Cells(i, 1).Value Loop
-
루프 동안 할 수있는 다음 코드 줄을 추가합니다.
Cells(i, 2).Value = Cells(i, 2).Value + 1 amount = amount - Cells(i, 1).Value
설명 : 양만큼 크거나 동일한 셀로는 (i, 1) .value이 양이 지폐 / 주화의이 값을 포함한다. 따라서, 엑셀 VBA이 지폐 / 주화 (제 1 라인)의 주파수를 증가시키고 양 (두 번째 행)에서 지폐 / 주화의 값을 감산한다. 양 세포는 (i, 1) .value보다 작아 질 때까지이 과정을 반복한다. 다음, 엑셀 VBA 단위 내가하고 다음 계산서 / 동전로 이동이 법안은 / 양 동전 맞는 왼쪽 얼마나 많은 시간을 볼 수 있습니다. 돈의 양이 지폐와 동전으로 분할됩니다이 방법은 더 이상 분할 남은 돈이 없을 때까지.
-
닫기 다음 루프의 경우와 if 문 (모두 외부 루프 동안 할 일을) 폐쇄하는 것을 잊지 마세요.
Next i End if
-
테스트 프로그램.
결과 :
참고 : 입력 된 금액이 필요하지 않습니다 물론 모든 청구서 / 동전이 포함되어 있습니다. 결코이 법안 / 동전에 대한 참이없고, 엑셀 VBA이 다음 계산서 / 동전으로 직접 이동하는 동안 양이 특정 법안 / 동전 수행 한 후 부분을 포함하지 않는 경우.