/ / Валутен конвертор в Excel VBA

Валутен конвертор в Excel VBA

По - долу ще разгледаме програма в Excel VBA който създава потребителска форма новопокръстените всяка сума от един валута в друга.

Потребителската форма, която ще създадем, изглежда така:

Валутен конвертор в Excel VBA

За да създадете този Userform, изпълнете следните стъпки.

1. Отворете редактора на Visual Basic. Ако Explorer на проекта не е видим, щракнете върху Преглед, Проект Explorer.

2. Щракнете върху Вмъкване, Потребител. Ако Toolbox не се покаже автоматично, кликнете върху View, Toolbox. Вашият екран трябва да бъде настроен, както е описано по-долу.

Настройка на потребителския екран в Excel VBA

3. Добавете етикетите, списъчните кутии (първо вляво, второто вдясно), текстовите полета (първо вляво, второто вдясно) и командния бутон. След като това бъде завършено, резултатът трябва да съответства на картината на потребителския формат, показан по-рано. Например, създайте контролен панел от списъка, като кликнете върху ListBox от Toolbox. След това можете да плъзнете списък в полето Userform.

4. Можете да промените имената и надписите на контролите. Имената се използват в кода Excel VBA. Надписите са тези, които се показват на екрана ви. Добра практика е да промените имената на контролите, но това не е необходимо тук, защото имаме само няколко контрола в този пример. За да промените надписа на Userform, командния бутон и етикетите, щракнете върху View, Properties Window и щракнете върху всеки контролен панел.

5. За да покажете Userform, поставете командния бутон на работния лист и добавете следния ред:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Сега ще създадем Sub UserForm_Initialize. Когато използвате метода "Показване" за Userform, този под ще се изпълни автоматично.

6. Отворете редактора на Visual Basic.

7. В Project Explorer кликнете с десния бутон на мишката върху UserForm1 и след това върху View Code.

8. Изберете Userform от левия падащ списък. Изберете "Инициализиране" от десния падащ списък.

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

Обяснение: на първо място, двата списъка са попълнени. След това валутата на щатския долар е зададена по подразбиране в първото поле в списъка и EURO валутата е зададена като по подразбиране във втория списък. Накрая стойността 1 се въвежда в първото текстово поле и стойността 0.722152 се въвежда във второто текстово поле.

Вече създадохме първата част от Userform. Въпреки че вече изглежда чист, нищо няма да се случи, когато щракнете върху бутона 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. Изпробвайте Userform.

Резултат:

Валутен конвертор Резултат

Също така се чете: