아래 우리는 지폐와 동전에 돈의 양을 분할 엑셀 VBA에서 프로그램을 볼 것이다.

상황 :

Bills and Coins in Excel VBA

워크 시트 변경 이벤트를 만듭니다. 워크 시트에서 셀을 변경할 때 워크 시트 변경 이벤트에 추가 된 코드는 엑셀 VBA에 의해 실행됩니다.

  1. Visual Basic 편집기.

프로젝트 탐색기에서 시트 1 (Sheet1의) 2. 두 번 클릭합니다.

왼쪽 드롭 다운 목록에서 워크 시트를 선택합니다. 오른쪽 드롭 다운 목록에서 변경을 선택합니다.

Worksheet Change Event in Excel VBA

워크 시트 변경 이벤트에 다음 코드 줄을 추가합니다

Double 형의 변수라는 금액을 입력 정수의 i 변수를 선언하십시오.

Dim amount As Double, i As Integer
  1. 워크 시트 변경 이벤트는 Sheet1의 모든 변경 사항을 수신합니다. 우리는 뭔가 셀 B2에서 변경하는 경우 엑셀 VBA 뭔가를하고 싶다. 이를 위해, 다음 코드 줄을 추가 :

If Target.Address = "$B$2" Then
  1. 우리는 전지 B2의 값으로 가변 량을 초기화한다.

amount = Range("B2").Value
  1. 우리는 주파수가 범위를 비 웁니다.

Range("B5:B16").Value = ""
  1. 지금은 돈을 입력 한 금액을 분할하는 시간이다. 우리는 다음의 루프를 시작합니다.

For i = 5 To 16
  1. 우리는 마 루프 동안 구조의 사용을 만들 것입니다. 이 단어 사이에 코드가 긴 사실이지만 마십시오 후 일부로으로 반복됩니다. 우리는 금액이 큰 경우 또는 세포 (I, 1) .value에 동일 엑셀 VBA만큼 10 단계에서 코드 라인을 반복합니다.

Do While amount >= Cells(i, 1).Value

Loop
  1. 루프 동안 할 수있는 다음 코드 줄을 추가합니다.

Cells(i, 2).Value = Cells(i, 2).Value + 1

amount = amount - Cells(i, 1).Value

설명 : 양만큼 크거나 동일한 셀로는 (i, 1) .value이 양이 지폐 / 주화의이 값을 포함한다. 따라서, 엑셀 VBA이 지폐 / 주화 (제 1 라인)의 주파수를 증가시키고 양 (두 번째 행)에서 지폐 / 주화의 값을 감산한다. 양 세포는 (i, 1) .value보다 작아 질 때까지이 과정을 반복한다. 다음, 엑셀 VBA 단위 내가하고 다음 계산서 / 동전로 이동이 법안은 / 양 동전 맞는 왼쪽 얼마나 많은 시간을 볼 수 있습니다. 돈의 양이 지폐와 동전으로 분할됩니다이 방법은 더 이상 분할 남은 돈이 없을 때까지.

  1. 닫기 다음 루프의 경우와 if 문 (모두 외부 루프 동안 할 일을) 폐쇄하는 것을 잊지 마세요.

Next i

End if
  1. 테스트 프로그램.

결과 :

Bills and Coins Result

참고 : 입력 된 금액이 필요하지 않습니다 물론 모든 청구서 / 동전이 포함되어 있습니다. 결코이 법안 / 동전에 대한 참이없고, 엑셀 VBA이 다음 계산서 / 동전으로 직접 이동하는 동안 양이 특정 법안 / 동전 수행 한 후 부분을 포함하지 않는 경우.