下面我们就来看看在Excel VBA的程序分割的金额为钞票和硬币。

现状:

Bills and Coins in Excel VBA

创建工作表更改事件。添加到工作表更改事件代码将被Excel VBA,当你在工作表上更改单元格执行。

1.打开Visual Basic编辑器。

2.双击工作表Sheet1(Sheet1中)在项目资源管理器。

3.从左边的下拉列表中选择工作表。从右侧的下拉列表中选择更改。

Worksheet Change Event in Excel VBA

添加以下代码行的工作表更改事件:

4.声明类型双人的变量称为量和类型整数的变量i。

Dim amount As Double, i As Integer

5.工作表更改事件侦听Sheet1上的所有变化。我们只希望Excel VBA到某些东西在B2单元格中的变化做一些事情。要做到这一点,添加以下代码行:

If Target.Address = "$B$2" Then

6.我们初始化与细胞B2的值的变量数量。

amount = Range("B2").Value

7.我们空与频率范围。

Range("B5:B16").Value = ""

8.现在是时候拆的资金输入量。我们开始为下一个循环。

For i = 5 To 16

9.我们将利用do while循环结构。放在这些词之间的代码会被重复,只要以后做的一部分。虽然是真实的。我们希望Excel VBA在步骤10,只要重复代码行量为大于或等于细胞(I,1)。价值。

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

Loop

10.添加以下代码行的do while循环。

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

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

说明:只要量为大于或等于细胞(I,1)。价值,所述量包含票据/该值的硬币。其结果是,Excel VBA中递增该纸币/硬币(第一行)的频率和减去从量(第二线)的纸币/硬币的值。这个过程将被重复直到量变得比细胞(I,1)。价值小。接下来,Excel的VBA增量i和进入下一个账单/硬币,看看有多少次这样的法案/在量硬币拟合离开。这样的资金量将被分成钞票和硬币,直到没有余钱了分裂。

11.关闭For Next循环,不要忘记关闭if语句(包括外do while循环)。

Next i

End if

12.测试程序。

结果:

Bills and Coins Result

注:当然进入量不一定包含所有账单/硬币。如果金额不包含某一议案/硬币,之后做的一部分。虽然从来没有成为这一法案/硬币真实和Excel VBA直接进入到下一个账单/硬币。