Използване на функции на работен лист в макрос - Примери за VBA код

Има много начини за използване на функции във VBA. VBA се зарежда с много вградени функции. Можете дори да създадете свои собствени функции (UDF). Можете обаче да използвате много от функциите на Excel във VBA, като използвате Application.WorksheetFunction.

Как да използвате функциите на работен лист във VBA

За достъп до функция на Excel във VBA добавете Application.WorksheetFunction пред функцията, която искате да извикате. В примера по -долу ще извикаме максималната функция на Excel:

12 Затъмнете максималната стойност толкова дългоmaxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value)

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

Обърнете внимание, че синтаксисът на функцията Max се появява, когато въвеждате (подобно на функциите VBA):

Метод на работен лист

WorksheetFunction е метод на обект на приложение. Позволява ви достъп до много (не всички) от стандартните функции на работния лист на Excel. Като цяло няма да получите достъп до функции на работен лист, които имат съответна VBA версия.

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

Приложение.Функция на работен лист срещу приложение

Всъщност има два начина за достъп до тези функции:

Application.WorksheetFunction (както се вижда по -горе):

1 maxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value)

или можете да пропуснете функцията на работния лист

1 maxvalue = Application.Max (Range ("a1"). Стойност, Range ("a2"). Value)

За съжаление, пропускането на WorksheetFunction ще премахне Intellisense, който показва синтаксиса (вижте изображението по -горе). Той обаче има едно голямо потенциално предимство: Обработка на грешки.

Ако използвате Application и вашата функция генерира грешка, тя ще върне стойността на грешката. Ако използвате метода WorksheetFunction, VBA ще изхвърли грешка по време на изпълнение. Разбира се, можете да се справите с грешката на VBA, но обикновено е по -добре да избегнете грешката на първо място.

Нека разгледаме един пример, за да видим разликата:

Работа с Vlookup Работен лист Функционална грешка

Ще се опитаме да извършим Vlookup, който няма да доведе до съвпадение. Така че функцията Vlookup ще върне грешка.

Първо ще използваме метода WorksheetFunction. Забележете как VBA издава грешка:

След това пропускаме функцията на работния лист. Забележете как

След това ще пропуснем функцията WorksheetFunction. Забележете как не се извежда грешка и вместо това функцията „стойност“ съдържа стойността на грешката от Vlookup.

Списък с функции на работен лист VBA

По -долу ще намерите списък с повечето от често срещаните функции на VBA работен лист.

ФункцияОписание
Логически
ИПроверява дали са изпълнени всички условия. ВЯРНО НЕВЯРНО
АКОАко условието е изпълнено, направете нещо, ако не, направете нещо друго.
ГРЕШКААко резултатът е грешка, направете нещо друго.
ИЛИПроверява дали са изпълнени някакви условия. ВЯРНО НЕВЯРНО
Търсене и справки
ИЗБИРАМИзбира стойност от списък въз основа на номера на позицията.
HLOOKUPПотърсете стойност в първия ред и върнете стойност.
ИНДЕКСВръща стойност въз основа на номерата на колоните и редовете.
ПОГЛЕДНИ НАГОРЕТърси стойности хоризонтално или вертикално.
СЪВПАДАТърси стойност в списък и връща нейната позиция.
ТРАНСПОЗИРАНЕОбръща ориентацията на редица клетки.
VLOOKUPПотърсете стойност в първата колона и върнете стойност.
Време за среща
ДАТАВръща дата от година, месец и ден.
ДАТИВАЛПреобразува дата, съхранена като текст, в валидна дата
ДЕНВръща деня като число (1-31).
ДНИ 360Връща дни между 2 дати в 360 -дневна година.
EDATEВръща дата, на n месеца от началната дата.
EOMONTHВръща последния ден от месеца, датата след n месеца.
ЧАСВръща часа като число (0-23).
МИНУТАВръща минутата като число (0-59).
МЕСЕЦВръща месеца като число (1-12).
МРЕЖНИ ДНИБрой работни дни между 2 дати.
NETWORKDAYS.INTLРаботни дни между 2 дати, уикенди по поръчка.
СЕГАВръща текущата дата и час.
ВТОРОВръща втория като число (0-59)
ВРЕМЕВръща часа от час, минута и секунда.
ВРЕМЕННОПреобразува времето, съхранено като текст, в валидно.
ВЕДНЕЛЕН ДЕНВръща деня от седмицата като число (1-7).
WEEKNUMВръща номера на седмицата за една година (1-52).
РАБОТЕН ДЕНДатата n работни дни от датата.
ГОДИНАВръща годината.
ГОДИНАВръща част от годината между 2 дати.
Инженерство
ПРЕВЪРНЕТЕПреобразувайте числа от една единица в друга.
Финансови
FVИзчислява бъдещата стойност.
PVИзчислява настоящата стойност.
NPERИзчислява общия брой периоди на плащане.
PMTИзчислява сумата на плащането.
ОЦЕНКАИзчислява лихвения процент.
NPVИзчислява нетната настояща стойност.
IRRВътрешната норма на възвръщаемост за набор от периодични CF.
XIRRВътрешната норма на възвръщаемост за набор от непериодични CF.
ЦЕНАИзчислява цената на облигация.
ИНТЕРТЛихвеният процент на напълно инвестирана ценна книга.
Информация
ISERRТествайте дали стойността на клетката е грешка, игнорира #N/A. ВЯРНО НЕВЯРНО
ГРЕШКАТествайте дали стойността на клетката е грешка. ВЯРНО НЕВЯРНО
НЕВИНОПроверете дали стойността на клетката е четна. ВЯРНО НЕВЯРНО
ИСЛОГИЧЕСКИТествайте дали клетката е логична (TRUE или FALSE). ВЯРНО НЕВЯРНО
ISNAПроверете дали стойността на клетката е #N/A. ВЯРНО НЕВЯРНО
ISNONTEXTТествайте дали клетката не е текст (празни клетки не са текст). ВЯРНО НЕВЯРНО
ISNUMBERПроверете дали клетката е число. ВЯРНО НЕВЯРНО
ISODDПроверете дали стойността на клетката е нечетна. ВЯРНО НЕВЯРНО
ISTEXTПроверете дали клетката е текст. ВЯРНО НЕВЯРНО
ТИПВръща типа стойност в клетка.
Математика
коремни мускулиИзчислява абсолютната стойност на число.
АГРЕГАТОпределете и извършете изчисления за база данни или списък.
ТАВАНЗакръглява число нагоре, до най -близкото определено кратно.
COSВръща косинуса на ъгъл.
СТУПЕНИПреобразува радиани в градуси.
DSUMЗаписи от базата данни за суми, които отговарят на определени критерии.
ДОРИЗакръглява до най -близкото четно число.
EXPИзчислява експоненциалната стойност за дадено число.
ФАКТВръща факториала.
ЕТАЖЗакръглява число надолу до най -близкото определено кратно.
GCDВръща най -големия общ делител.
INTЗакръглява число до най -близкото цяло число.
LCMВръща най -малкото общо кратно.
LNВръща естествения логаритъм на число.
ВХОДВръща логаритъма на число към определена основа.
LOG10Връща логаритъма на числото с основа-10.
MROUNDЗакръглява число до определено кратно.
ODDЗакръглява до най -близкото нечетно цяло число.
PIСтойността на PI.
МОЩНОСТИзчислява число, повишено до степен.
ПРОДУКТУмножава масив от числа.
КОЛИЧЕСТВОВръща целочисления резултат от делението.
РАДИАНИПреобразува ъгъл в радиани.
РАНТБЕГИзчислява случайно число между две числа.
КРЪГЪЛЗакръглява число до определен брой цифри.
ROUNDDOWNЗакръглява число надолу (към нула).
ЗАКРЪГЛЯМЗакръглява число нагоре (далеч от нула).
ГРЕХВръща синуса на ъгъл.
ПОДБОТАВръща обобщена статистика за поредица от данни.
SUMДобавя числа заедно.
SUMIFСуми, които отговарят на критерий.
SUMIFSСуми, които отговарят на множество критерии.
СУМПРОДУКТУмножава масиви от числа и сумира получения масив.
TANВръща тангенса на ъгъл.
Статистика
СРЕДНО АРИТМЕТИЧНОСредни числа.
СРЕДНОСредни числа, които отговарят на критерий.
СРЕДНИСредни числа, които отговарят на множество критерии.
КОРЕЛИзчислява корелацията на две серии.
БРОЯПреброява клетки, които съдържат число.
COUNTAПребройте клетките, които не са празни.
COUNTBLANKПреброява клетки, които са празни.
COUNTIFПреброява клетки, които отговарят на критерий.
ПРОФИСИПреброява клетки, които отговарят на множество критерии.
ПРОГНОЗАПредсказване на бъдещи y-стойности от линейната тенденция.
ЧЕСТОТАПреброява стойности, които попадат в определени диапазони.
РАСТЕЖИзчислява Y стойности въз основа на експоненциален растеж.
ПРЕХВЪРЛЯНЕИзчислява Y прихващане за най-подходяща линия.
ГОЛЯМВръща k -тата най -голяма стойност.
LINESTВръща статистически данни за линия на тренда.
МАКСВръща най -голямото число.
МЕДИАНАВръща медианното число.
МИНВръща най -малкото число.
РЕЖИМВръща най -често срещания номер.
ПЕРЦЕНЦИЛНОВръща k -тия персентил.
PERCENTILE.INCВръща k -тия персентил. Където k е включително.
PERCENTILE.EXCВръща k -тия персентил. Където k е изключителен.
КВАРТИЛЕНВръща посочената квартилна стойност.
QUARTILE.INCВръща посочената квартилна стойност. Приобщаващ.
QUARTILE.EXCВръща посочената квартилна стойност. Изключителен.
РАНГРанг на число в серия.
RANK.AVGРанг на число в серия. Средни стойности.
RANK.EQРанг на число в серия. Най -висок ранг.
НАКЛОНИзчислява наклона от линейна регресия.
МАЛКИВръща k -тата най -малка стойност.
СТДЕВИзчислява стандартното отклонение.
STDEV.PИзчислява SD на цялото население.
СТДЕВ С.Изчислява SD на пробата.
STDEVPИзчислява SD на цялото население
ТЕНДЕНЦИЯИзчислява Y стойности въз основа на линия на тренда.
Текст
ЧИСТПремахва всички неразпечатващи се знаци.
ДОЛАРПреобразува число в текст във валутен формат.
НАМИРАМНамира позицията на текста в клетка.
НАЛЯВОСъкращава текст от няколко знака отляво.
LENПреброява броя знаци в текста.
MIDИзвлича текст от средата на клетка.
ПРАВИЛНОПреобразува текст в подходящ регистър.
ЗАМЕНЕТЕЗаменя текста в зависимост от местоположението му.
REPTПовтаря текста няколко пъти.
ПРАВОСъкращава текста на няколко знака отдясно.
ТЪРСЕНЕНамира позицията на текста в клетка.
ЗАМЕСТНИКНамира и заменя текст. Различаващ главни от малки букви.
ТЕКСТКонвертира стойност в текст с определен формат на числото.
TRIMПремахва всички допълнителни пространства от текста.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave