ПредишенСледващото

И ще дойдат сред мъжете и ще покажат големи чудеса на света и до края на небето, и да се обиди по това време умовете на мнозина, падат в изкушение.

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

Можете да отворите готов пример:

За да създадете потребителски дефинирани функции, трябва да създадете празен макро (да се създаде модул), където да се добави следния тип програма Функция:

Увеличение = брой * 1000 + 12

Обществена функция (VBA е да се създаде функция екип) Увеличаване (функция име, което ще се изчисли) (номер) (на името на променливата, която ще бъде използвана в изчисленията)

Увеличение = (да кажем, че функцията VBA име Увеличение се изчислява като :.) Брой * 1000 + 12 (по-рано дефинирана променлива Брой умножена и добавяне: * 1000 + 12)

Край функция (всички изчисления са завършени)

Вие трябва да поставите този код в модула.

Сега, ние изберете клетка и ги поставяме Увеличете формула (работи като нормални формули Excel) в раздел, дефинирани от потребителя на.

потребителски функции

Следваща подпечатан дефинирани променливи:

потребителски функции

И ние получите резултат, както бихте направили със стандартните формули (единствената разлика е в скоростта на изчисленията - в VBA скоростта е много по-малко, но това е забележимо само когато обемни изчисления).

Ние също трябва да се спре пред SimpleSum функции:

Публична Функция SimpleSum (ParamArray списък () Както Variant) Както Двойна

За Всяка клетка В списък

SimpleSum = SimpleSum + клетки

Публична Функция SimpleSum (име на функция) (ParamArray списък () (определя безкраен заявките променливи списък) Тъй като вариант) и двойни (оператори за присвояване - не се смятат в ръководството за обучение)

За Всяка клетка в списък (ние говорим VBA. Това за всяка клетка в списъка с променлива списък се изпълнява следната изчислителна :)

SimpleSum = SimpleSum + клетки (функция SimpleSum = общата сума за всяка клетка SimpleSum добавена клетка. Което, както вероятно си спомняте, определя всяка променлива в списъка на списък. Т.е. от общия брой добавени нови променливи до тяхното изчерпване.) Сега се опитайте да се каже, че програмирането в VBA просто :)))

Следваща клетка (ние пълно търсене на всички клетъчни променливи)

Край функция (всички изчисления са завършени)

В последния пример функцията SimpleSumInc, ние добавихме постоянно променлива Констанца и умножава всяка избрана клетка на размера на тази променлива. Опитайте се за себе си, за да се разбере същността на програмата.

За съжаление, функцията по поръчка ще работи само в партидата, в която са регистрирани. За нови файлове, те ще трябва да преминат на нов макрос.

Ако винаги използвате определена функция - тя може да бъде предписано в ЛИЧНИ. XLS. но имайте предвид - той ще работи само на вашия компютър.

Настоящият финансов функция позволява на числови стойности да пишат руски думи.

Пример: 144917-99 как Сто четиредесет и четири хиляди и деветстотин и седемнадесет рубли и деветдесет и девет цента

Много удобно малко нещо:

Функция SummaPropisyu (pNUM Като вариант) Както стринга

Дим vNUM Както Двойна
Дим писма, L, W Както стринга
Дим L100 (9) Както String
Дим L10 (9) Както String
Дим L1 (22) Както String
Дим SYM (3, 4) String
Дим DIG (4) цяло число
Дим NUMRUB, I, J, X, N100, N10, п1 Като цяло число


L100 (0) = ""
L100 (1) = "сто"
L100 (2) = "сто"
L100 (3) = "сто"
L100 (4) = "четири"
L100 (5) = "сто"
L100 (6) = "сто"
L100 (7) = "сто"
L100 (8) = "осем"
L100 (9) = "девет"

L10 (0) = ""
L10 (1) = ""
L10 (2) = "двадесет"
L10 (3) = "тридесет"
L10 (4) = "четиридесет"
L10 (5) = "петдесет"
L10 (6) = "шестдесет"
L10 (7) = "седемдесет"
L10 (8) = "осемдесет"
L10 (9) = "деветдесет"

L1 (0) = ""
L1 (1) = "единична"
L1 (2) = "две"
L1 (3) = "три"
L1 (4) = "четири"
L1 (5) = "пет"
L1 (6) = "шест"
L1 (7) = "Седем"
L1 (8) = "осем"
L1 (9) = "девет"
L1 (10) = "десет"
L1 (11) = "единадесет"
L1 (12) = "дванадесет"
L1 (13) = "тринадесет"
L1 (14) = "четиринадесет"
L1 (15) = "петнадесет"
L1 (16) = "шестнадесет"
L1 (17) = "седемнадесет"
L1 (18) = "осемнадесет"
L1 (19) = "деветнадесет"
L1 (20) = "двадесет"
L1 (21) = "единична"
L1 (22) = "две"

SYM (1, 0) = "милиард" 'до 01
SYM (1, 1) = "милион"
SYM (1, 2) = "хиляди"
SYM (1, 3) = "RUB"
SYM (1, 4) = "пени"

SYM (2, 0) = "милиард" ", за да 02,03,04
SYM (2, 1) = "милион"
SYM (2, 2) = "хиляди"
SYM (2, 3) = "RUB"
SYM (2, 4) = "пени"

SYM (3, 0) = "милиард" "за всички останали
SYM (3, 1) = "милиони"
SYM (3, 2) = "хиляди"
SYM (3, 3) = "RUR"
SYM (3, 4) = "цента"

Ако Val (pNUM) <= 0 Or Val(pNUM)> 1000000000000 # След това
MsgBox ( "Сумата трябва да бъде по-голямо от нула и по-малко от един трилион рубли!")
SummaPropisyu = "операторска грешка!"
Exit Function
Крайна сметка, ако

"Изолиране цента
J = Len (pNUM)
За I = 1 да й
w = Mid (pNUM, I, 1)
Ако (w = "-") или (w = "=") или (w = ",") След това w = "".
L = L + W
Следваща аз


DIG (4) = (vNUM - Fix (vNUM)) * 100
"Разпределение на рубли хиляди, милиони и милиарди
За I = 0 до 3 Стъпка -1
vNUM = Fix (vNUM) / 1000
DIG (I) = (vNUM - Fix (vNUM)) * 1000
Следваща аз


"Попълване поле характер
За I = 0 до 4
1 = 0
х = DIG (I)
N100 = Fix (х / 100)
п10 = х - N100 х 100
1 = N10 - Fix (N10 / 10) * 10
БУКВИ = БУКВИ + L100 (N100) "стотици
Ако n10 <= 20 Then
Ако (и = 2 Или аз = 4) и (n10 = 1 Или n10 = 2) След това n10 = n10 + 20 ", ако хиляда или стотинка в женската
БУКВИ = писма + L1 (N10) "до 20 единици
Else '> 20
х = N10
п10 = Fix (N10 / 10)
1 = х - N10 * 10
БУКВИ = писма + L10 (N10)
Ако (и = 2 Или аз = 4) и (1 = 1 или N 1 = 2) След това
Писма = писма + L1 (n1 + 20) "Ако хиляда или пени в женски
още
БУКВИ = писма + L1 (n1) "до 20 единици
Крайна сметка, ако
Крайна сметка, ако
"Попълване елементи
Ако I = 4 Тогава
1 = DIG (4) - Fix (DIG (4) / 10) * 10 'цента
Крайна сметка, ако
Изберете дело n1
дело 0
J = 0
Случай 1
J = 1
Случай 2
J = 2
Случай 3
J = 2
Случай 4
J = 2
Case Else
J = 3
Край Изберете
Ако n10 - 1 = 10 После й = 3
Ако (n10> 0 или N100> 0) и к = 0 Тогава й = 3
Писма = писма + SYM (J, I)

Ако аз = 3 И DIG (3) = 0 Тогава БУКВИ = БУКВИ + "RUB"

Следваща аз
"Първата буква - заглавие
БУКВИ = Trim (Chr (ASC (вляво (Letters, 1)) - 32) + Mid (Letters, 2))
SummaPropisyu = писма

Свързани статии

Подкрепете проекта - споделете линка, благодаря!