Banconote e monete in Excel VBA
Di seguito vedremo un programma in Excel VBA che divide una somma di denaro in banconote e monete.
Situazione:
Creare un evento di modifica del foglio di lavoro. Codice aggiunto all’evento Change foglio di lavoro sarà eseguito da Excel VBA quando si modifica una cella di un foglio di lavoro.
-
Aprire il Visual Basic Editor.
-
Fare doppio clic su Sheet1 (Foglio1) in Esplora progetti.
-
Scegliere foglio di lavoro dall’elenco a discesa sinistra. Seleziona Cambia dall’elenco a discesa a destra.
Aggiungere le seguenti righe di codice per l’evento Change Foglio di lavoro:
-
Dichiarare una quantità variabile denominata di tipo doppio ed una variabile i di tipo intero.
Dim amount As Double, i As Integer
-
L’evento di modifica ascolta tutte le modifiche di Sheet1. Vogliamo solo Excel VBA per fare qualcosa se qualcosa cambia nella cella B2. Per raggiungere questo obiettivo, aggiungere la seguente riga di codice:
If Target.Address = "$B$2" Then
-
inizializzare la quantità variabile con il valore della cella B2.
amount = Range("B2").Value
-
svuotare la gamma delle frequenze.
Range("B5:B16").Value = ""
-
Ora è il momento di dividere l’importo iscritto di denaro. Iniziamo un ciclo For Next.
For i = 5 To 16
-
Faremo uso del ciclo Do While struttura. Codice posto tra queste parole viene ripetuto finché la parte dopo Do Mentre è vero. Vogliamo Excel VBA per ripetere le righe di codice al punto 10 finchè importo è maggiore o uguale a cellule (i, 1) .value.
Do While amount >= Cells(i, 1).Value Loop
-
Aggiungere le seguenti righe di codice al Do While Loop.
Cells(i, 2).Value = Cells(i, 2).Value + 1 amount = amount - Cells(i, 1).Value
Spiegazione: fintanto che quantità è maggiore o uguale a celle (i, 1) .value, l’importo contiene bollette / monete di questo valore. Come risultato, Excel VBA incrementa la frequenza di questa legge / moneta (prima riga) e sottrae il valore della banconota / moneta dalla quantità (seconda riga). Questo processo viene ripetuto finché quantità diventa minore cellule (i, 1) .value. Successivamente, con incrementi di Excel VBA I e va alla prossima fattura / moneta per vedere quante volte questo disegno di legge / adatta moneta nella quantità a sinistra. In questo modo la quantità di denaro sarà divisa in banconote e monete fino a quando non ci sono soldi a sinistra per dividere più.
-
Chiudere il ciclo For Next e non dimenticare di chiudere l’istruzione if (sia al di fuori del ciclo Do While).
Next i End if
-
Test del programma.
Risultato:
Nota: naturalmente l’importo iscritto non necessariamente contiene ogni fattura / moneta. Se il valore non contiene un certo disegno di legge / moneta, la parte dopo Do Mentre non diventa mai vero per questo disegno di legge / moneta e Excel VBA va direttamente alla prossima fattura / moneta.