下面我们就来看看在Excel VBA程序,该程序创建从一个货币转换任何金额到另一个用户窗体。

用户窗体,我们要创建如下所示:

Currency Converter in Excel VBA

要创建这个用户窗体,请执行下列步骤。

1.打开Visual Basic编辑器。如果项目资源管理器中是不可见,单击视图,工程资源管理器。

2.单击插入,用户窗体。如果工具箱没有自动出现,单击视图,工具箱。您的屏幕应该设置如下。

Userform Screen Setup in Excel VBA

3.添加标签,列表框(第一个在左边,在右边第二个),文本框(第一个在左边,第二个在右侧)和命令按钮。一旦这个已经完成,其结果应与前面显示的用户窗体的图片一致。例如,创建通过点击列表框从工具箱中一个列表框控件。接下来,你可以在用户窗体拖动列表框。

4.您可以更改名称和控件的标题。名称在Excel的VBA代码中使用。标题是那些出现在屏幕上。这是改变控件的名称很好的做法,但在这里是没有必要的,因为我们只有几个控件在这个例子中。要更改用户窗体,命令按钮和标签的标题,单击视图,属性窗口,然后点击每个控件。

5.要显示用户窗体,放置在您的工作表一个命令按钮并添加以下代码行:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

现在,我们要创建的子UserForm_Initialize。当您使用Show方法用于用户窗体,该子会被自动执行。

6.打开Visual Basic编辑器。

7.在项目资源管理器,右击UserForm1上,然后单击查看代码。

8.从左边的下拉列表中选择用户窗体。从右侧的下拉列表中选择初始化。

9.添加以下代码行:

Private Sub UserForm_Initialize()

With ListBox1

.AddItem "Euro"

.AddItem "Us Dollar"

.AddItem "British Pound"

End With

With ListBox2

.AddItem "Euro"

.AddItem "Us Dollar"

.AddItem "British Pound"

End With

ListBox1.ListIndex = 1

ListBox2.ListIndex = 0

TextBox1.Value = 1

TextBox2.Value = 0.722152

End Sub

说明:第一,两个列表框被填充。其次,美元汇率被设置为默认的第一个列表框和欧元currencyis设置为默认在第二个列表框中。最后,值1在第一个文本框中输入和值0.722152在第二个文本框中输入。

我们现在已经创建用户窗体的第一部分。虽然看起来已经整齐,什么都不会,当我们点击Go按钮尚未发生。

10.在Project Explorer中,UserForm1上双击。

11.双击Go按钮。

12.添加以下代码行:

Private Sub CommandButton1_Click()

Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer

rates(0, 0) = 1

rates(0, 1) = 1.38475

rates(0, 2) = 0.87452



rates(1, 0) = 0.722152

rates(1, 1) = 1

rates(1, 2) = 0.63161



rates(2, 0) = 1.143484

rates(2, 1) = 1.583255

rates(2, 2) = 1



For i = 0 To 2

For j = 0 To 2

If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value  rates(i, j)

Next j

Next i

End Sub

说明:首先,我们声明一个数组。该阵列具有两个维度。

它由3行3列。接下来,我们初始化数组的每个元素。例如,速率(1,0)是汇率从美元到欧元。接下来,我们开始了双回路。根据在列表框中选择货币,Excel的VBA转换在第一个文本框,并将结果显示在第二个文本框中输入的金额。

例如:若i = 2和j = 1,我们在第一个文本框中输入值2,Excel的VBA会将值2种费率(2,1)= 2×1.583255 =在第二个文本框3.16651。

13.测试窗体。

结果:

Currency Converter Result