Excel VBA предоставя множество вградени функции. Някои от тези функции на Excel VBA приемат аргументи, а някои не.
Примери за функции на Excel VBA
Тук ще намерите няколко примера за използване на VBA функции в код. В много от тези примери функцията MsgBox показва стойност в кутия за съобщения. Да, MsgBox е VBA функция - доста необичайна, но въпреки това функция. Тази полезна функция показва съобщение в диалогов прозорец и също така връща стойност.
Показване на системната дата или час
Първият пример използва функцията Date на VBA за показване на текущата системна дата в поле за съобщение:
Sub ShowDate()
MsgBox "Днес е: " & Дата
Край под
Забележете, че функцията Date не използва аргумент. За разлика от функциите на работния лист, VBA функция без аргумент не изисква празен набор от скоби. Всъщност, ако въведете празен набор от скоби, VBE незабавно ги премахва.
За да получите системното време, използвайте функцията Time. И ако искате всичко, използвайте функцията Now, за да върнете както датата, така и часа.
Намиране на дължина на низ
Следващата процедура използва функцията VBA Len, която връща дължината на текстов низ. Функцията Len приема един аргумент: низа. Когато изпълните тази процедура, полето за съобщение показва вашето име и броя на знаците във вашето име.
Под GetLength()
Dim MyName като низ
Дължина на струна толкова дълга
Моето име = Приложение.Потребителско име
StringLength = Len(Моето име)
MsgBox MyName & " има символи " & StringLength & "."
Край под
Изчисляване на дължината на вашето име.
Excel също има функция LEN, която можете да използвате във формулите на работния си лист. Версията на Excel и функцията VBA работят еднакво.
Показва името на месец
Следващата процедура използва функцията MonthName, която връща името на месец. MonthName използва един аргумент: цяло число между 1 и 12.
Sub ShowMonthName()
Затъмнете този месец толкова дълго
Този месец = месец (дата)
MsgBox MonthName (Този месец)
Край под
Тази процедура използва функцията Month, за да получи текущия месец (като стойност) и тази стойност се присвоява на променливата ThisMonth. След това функцията MonthName преобразува стойността в текст. Така че, ако стартирате тази процедура през април, полето за съобщение показва текста април.
Всъщност променливата ThisMonth не е задължителна. Можете да получите същия ефект с този израз, който използва три VBA функции:
Име на месец(Месец(Дата))
Тук текущата дата се предава като аргумент на функцията Month, която връща стойност, която е предадена като аргумент на функцията MonthName.
Определяне на размера на файла
Следната подпроцедура показва размера в байтове на изпълнимия файл на Excel. Той намира тази стойност с помощта на функцията FileLen:
Под GetFileSize()
Затъмнете файла като низ
TheFile = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen(TheFile)
Край под
Забележете, че тази подпрограма твърдо кодира името на файла (тоест изрично посочва пътя). Това не е добра идея. Файлът може да не е на C устройството или папката на Excel може да има различно име. Следното твърдение показва по-добър подход:
Файлът = Application.Path & "\EXCEL.EXE"
Пътят е свойство на обекта Application. Той просто връща името на папката, в която е инсталирано приложението (тоест Excel) (без обратна наклонена черта).
Идентифициране на типа на избран обект
Следната процедура използва функцията TypeName, която връща типа на селекцията в работния лист (като низ):
Sub ShowSelectionType()
Dim SelType като низ
SelType = TypeName(Избор)
MsgBox SelType
Край под
Изборът може да бъде диапазон, картина, правоъгълник, област на диаграма или всеки друг тип обект, който може да бъде избран.
Функцията TypeName е много гъвкава. Можете също да използвате тази функция, за да определите типа данни на променлива.
Excel VBA функции, които правят повече от връщане на стойност
Няколко VBA функции надхвърлят и отвъд служебното задължение. Вместо просто да връщат стойност, тези функции имат някои полезни странични ефекти.
VBA функции с полезни странични предимства
Функция |
Какво прави |
MsgBox |
Показва удобен диалогов прозорец, съдържащ съобщение и бутони. Функцията връща код, който идентифицира кой бутон щраква потребителят. |
InputBox |
Показва прост диалогов прозорец, който пита потребителя за някакъв вход. Функцията връща всичко, което потребителят въведе в диалоговия прозорец. |
Shell |
Изпълнява друга програма. Функцията връща идентификатора на задачата (уникален идентификатор) на другата програма (или грешка, ако функцията не може да стартира другата програма). |
Откриване на функции на Excel VBA
Как да разберете кои функции предоставя VBA? Добър въпрос. Най-добрият източник е системата Excel VBA . Друг начин е да въведете VBA , последвано от точка. Получавате списък с артикули. Тези със зелена икона са функции. Ако тази функция не работи, изберете Инструменти на VBE → Опции, щракнете върху раздела Редактор и поставете отметка до Автоматични членове на списъка.
Начин за показване на списък с VBA функции.
Във VBA има над 140 различни функции. Някои са толкова специализирани и неясни, че никога няма да имате нужда от тях. Други обаче са доста полезни за много приложения.
Най-полезните вградени функции на Excel VBA
Функция |
Какво прави |
Коремни мускули |
Връща абсолютната стойност на числото |
масив |
Връща вариант, съдържащ масив |
Избирам |
Връща стойност от списък с елементи |
Хр |
Преобразува ANSI стойност в низ |
CurDir |
Връща текущия път |
Дата |
Връща текущата системна дата |
Дата Добавяне |
Връща дата, към която е добавен определен интервал от време — например един месец от определена дата |
DateDiff |
Връща цяло число, показващо броя на определени интервали от време между две дати — например броя на месеците между сега и рождения ви ден |
Дата Част |
Връща цяло число, съдържащо определената част от дадена дата — например ден от годината на дата |
DateSerial |
Преобразува дата в сериен номер |
DateValue |
Преобразува низ в дата |
ден |
Връща деня от месеца от стойност за дата |
реж |
Връща името на файл или директория, което съответства на шаблон |
Err |
Връща номера на грешката на условие за грешка |
Грешка |
Връща съобщението за грешка, което съответства на номер на грешка |
Exp |
Връща основата на естествения логаритъм (e), повдигнат на степен |
FileLen |
Връща броя на байтовете във файл |
Поправи |
Връща цялата част от числото |
Форматиране |
Показва израз в определен формат |
GetSetting |
Връща стойност от системния регистър на Windows |
час |
Връща часовата част от времето |
InputBox |
Показва поле за подканване на потребителя за въвеждане |
InStr |
Връща позицията на низ в друг низ (отчитайки от началото) |
InStrRev |
Връща позицията на низ в друг низ (като се брои от края) |
Int |
Връща целочислената част от число |
IsArray |
Връща True, ако променливата е масив |
IsDate |
Връща True, ако изразът е дата |
Празно е |
Връща True, ако променливата не е инициализирана |
IsError |
Връща True, ако изразът е стойност за грешка |
Липсва |
Връща True, ако незадължителен аргумент не е предаден на процедура |
IsNull |
Връща True, ако изразът не съдържа валидни данни |
IsNumeric |
Връща True, ако изразът може да бъде оценен като число |
LBbound |
Връща най-малкия индекс за измерение на масив |
LCase |
Връща низ, преобразуван в малки букви |
Наляво |
Връща определен брой знаци отляво на низ |
Лен |
Връща броя на знаците в низ |
средата |
Връща определен брой знаци от низ |
Минута |
Връща частта от минутите от времева стойност |
месец |
Връща месеца от стойност на дата |
MsgBox |
Показва поле за съобщение и (по избор) връща стойност |
Сега |
Връща текущата системна дата и час |
Сменете |
Заменя подниз в низ с друг подниз |
RGB |
Връща цифрова RGB стойност, представляваща цвят |
правилно |
Връща определен брой знаци отдясно на низ |
Rnd |
Връща произволно число между 0 и 1 |
Второ |
Връща секундната част от времева стойност |
Shell |
Изпълнява изпълнима програма |
Космос |
Връща низ с определен брой интервали |
Разделяне |
Разделя низ на части, използвайки разделителен знак |
кв |
Връща квадратен корен от число |
низ |
Връща повтарящ се символ или низ |
Време |
Връща текущото системно време |
Таймер |
Връща броя на секундите от полунощ |
TimeSerial |
Връща времето за определен час, минута и секунда |
Времева стойност |
Преобразува низ във времеви сериен номер |
Подстригване |
Връща низ без водещи или крайни интервали |
TypeName |
Връща низ, който описва типа данни на променлива |
UBbound |
Връща най-големия наличен индекс за измерението на масива |
UCase |
Преобразува низ в главни букви |
Вал |
Връща числата, съдържащи се в низ |
делничен ден |
Връща число, представляващо ден от седмицата |
Година |
Връща годината от стойност на дата |
За пълни подробности относно конкретна функция на Excel VBA , въведете името на функцията в VBA модул, преместете курсора навсякъде в текста и натиснете F1.