Open Library - открытая библиотека учебной информации. Vba функции
Список функций листов, доступных для Visual Basic
- 11/13/2018
- Время чтения: 3 мин
В этой статье
Следующий список предоставляет все функции, которые могут вызываться с помощью объекта WorkSheetFunction .The following list represents all of the worksheet functions that can be called using the WorkSheetFunction object.
Дополнительные сведения о конкретной функции приведены в разделе функции Excel (по категориям) .For more information about a particular function, see the Excel functions (by category) topic.
- AccrIntAccrInt
- AccrIntMAccrIntM
- AcosAcos
- AcoshAcosh
- AggregateAggregate
- AmorDegrcAmorDegrc
- AmorLincAmorLinc
- AndAnd
- Для приложенияApplication
- AscAsc
- AsinAsin
- AsinhAsinh
- Atan2Atan2
- AtanhAtanh
- AveDevAveDev
- AverageAverage
- AverageIfAverageIf
- AverageIfsAverageIfs
- BahtTextBahtText
- BesselIBesselI
- BesselJBesselJ
- BesselKBesselK
- BesselYBesselY
- BetaDistBetaDist
- BetaInvBetaInv
- Bin2DecBin2Dec
- Bin2HexBin2Hex
- Bin2OctBin2Oct
- Binom_DistBinom_Dist
- Binom_InvBinom_Inv
- BinomDistBinomDist
- CeilingCeiling
- Ceiling_PreciseCeiling_Precise
- ChiDistChiDist
- ChiInvChiInv
- ChiSq_DistChiSq_Dist
- ChiSq_Dist_RTChiSq_Dist_RT
- ChiSq_InvChiSq_Inv
- ChiSq_Inv_RTChiSq_Inv_RT
- ChiSq_TestChiSq_Test
- ChiTestChiTest
- ChooseChoose
- CleanClean
- CombinCombin
- ComplexComplex
- ConfidenceConfidence
- Confidence_NormConfidence_Norm
- Confidence_TConfidence_T
- ConvertConvert
- CorrelCorrel
- CoshCosh
- CountCount
- CountACountA
- CountBlankCountBlank
- CountIfCountIf
- CountIfsCountIfs
- CoupDayBsCoupDayBs
- CoupDaysCoupDays
- CoupDaysNcCoupDaysNc
- CoupNcdCoupNcd
- CoupNumCoupNum
- CoupPcdCoupPcd
- CovarCovar
- Covariance_PCovariance_P
- Covariance_SCovariance_S
- CritBinomCritBinom
- CumIPmtCumIPmt
- CumPrincCumPrinc
- DAverageDAverage
- Days360Days360
- DbDb
- DbcsDbcs
- DCountDCount
- DCountADCountA
- DDBDdb
- Dec2BinDec2Bin
- Dec2HexDec2Hex
- Dec2OctDec2Oct
- DegreesDegrees
- DeltaDelta
- DevSqDevSq
- DGetDGet
- DiscDisc
- DMaxDMax
- DMinDMin
- DollarDollar
- DollarDeDollarDe
- DollarFrDollarFr
- DProductDProduct
- DStDevDStDev
- DStDevPDStDevP
- DSumDSum
- ПродолжительностьDuration
- DVarDVar
- DVarPDVarP
- EDateEDate
- ЭффектEffect
- КОНМЕСЯЦАEoMonth
- ErfErf
- Erf_PreciseErf_Precise
- ErfCErfC
- EvenEven
- Expon_DistExpon_Dist
- Функция ЭКСПРАСПExponDist
- F_DistF_Dist
- F_Dist_RTF_Dist_RT
- F_InvF_Inv
- F_Inv_RTF_Inv_RT
- F_TestF_Test
- FactFact
- FactDoubleFactDouble
- FDistFDist
- НайтиFind
- FindBFindB
- FInvFInv
- FisherFisher
- FisherInvFisherInv
- ФиксацияFixed
- FloorFloor
- ПрогнозForecast
- FrequencyFrequency
- FTestFTest
- БЗFv
- FVScheduleFVSchedule
- Gamma_DistGamma_Dist
- Gamma_InvGamma_Inv
- GammaDistGammaDist
- GammaInvGammaInv
- GammaLnGammaLn
- GammaLn_PreciseGammaLn_Precise
- GcdGcd
- GeoMeanGeoMean
- GeStepGeStep
- GrowthGrowth
- HarMeanHarMean
- Hex2BinHex2Bin
- Hex2DecHex2Dec
- Hex2OctHex2Oct
- HLookupHLookup
- HypGeom_DistHypGeom_Dist
- ГИПЕРГЕОМЕТHypGeomDist
- IfErrorIfError
- ImAbsImAbs
- ImaginaryImaginary
- ImArgumentImArgument
- ImConjugateImConjugate
- ImCosImCos
- ImDivImDiv
- ImExpImExp
- ImLnImLn
- ImLog10ImLog10
- ImLog2ImLog2
- ImPowerImPower
- ImProductImProduct
- ImRealImReal
- ImSinImSin
- ImSqrtImSqrt
- ImSubImSub
- ImSumImSum
- IndexIndex
- InterceptIntercept
- IntRateIntRate
- IPmtIpmt
- Функция IRRIrr
- IsErrIsErr
- IsErrorIsError
- IsEvenIsEven
- IsLogicalIsLogical
- IsNAIsNA
- IsNonTextIsNonText
- IsNumberIsNumber
- IsOddIsOdd
- IspmtIspmt
- IsTextIsText
- KurtKurt
- БольшаяLarge
- LcmLcm
- LinEstLinEst
- LnLn
- LogLog
- Log10Log10
- LogEstLogEst
- LogInvLogInv
- LogNorm_DistLogNorm_Dist
- LogNorm_InvLogNorm_Inv
- LogNormDistLogNormDist
- ПодстановкаLookup
- MatchMatch
- MaxMax
- MDetermMDeterm
- MDurationMDuration
- MedianMedian
- MinMin
- MInverseMInverse
- MIrrMIrr
- MMultMMult
- РежимMode
- Mode_MultMode_Mult
- Mode_SnglMode_Sngl
- MRoundMRound
- MultiNomialMultiNomial
- NegBinom_DistNegBinom_Dist
- NegBinomDistNegBinomDist
- NetworkDaysNetworkDays
- NominalNominal
- Norm_DistNorm_Dist
- Norm_InvNorm_Inv
- Norm_S_DistNorm_S_Dist
- Norm_S_InvNorm_S_Inv
- NormDistNormDist
- NormInvNormInv
- NormSDistNormSDist
- NormSInvNormSInv
- NPerNPer
- NPVNpv
- Oct2BinOct2Bin
- Oct2DecOct2Dec
- Oct2HexOct2Hex
- OddOdd
- OddFPriceOddFPrice
- OddFYieldOddFYield
- OddLPriceOddLPrice
- OddLYieldOddLYield
- OrOr
- PearsonPearson
- PercentilePercentile
- Percentile_ExcPercentile_Exc
- Percentile_IncPercentile_Inc
- PercentRankPercentRank
- PercentRank_ExcPercentRank_Exc
- PercentRank_IncPercentRank_Inc
- PermutPermut
- PhoneticPhonetic
- PiPi
- PmtPmt
- PoissonPoisson
- Poisson_DistPoisson_Dist
- PowerPower
- PPmtPpmt
- PricePrice
- PriceDiscPriceDisc
- PriceMatPriceMat
- ProbProb
- ПродуктProduct
- ProperProper
- PVPv
- QuartileQuartile
- Quartile_ExcQuartile_Exc
- Quartile_IncQuartile_Inc
- QuotientQuotient
- RadiansRadians
- RandBetweenRandBetween
- RankRank
- Rank_AvgRank_Avg
- Rank_EqRank_Eq
- RateRate
- ReceivedReceived
- ReplaceReplace
- ReplaceBReplaceB
- ReptRept
- RomanRoman
- RoundRound
- RoundDownRoundDown
- RoundUpRoundUp
- RSqRSq
- RTDRTD
- ПоискSearch
- SearchBSearchB
- SeriesSumSeriesSum
- SinhSinh
- SkewSkew
- SLNSln
- SlopeSlope
- МалыйSmall
- SqrtPiSqrtPi
- StandardizeStandardize
- StDevStDev
- StDev_PStDev_P
- StDev_SStDev_S
- StDevPStDevP
- StEyxStEyx
- SubstituteSubstitute
- SubtotalSubtotal
- SumSum
- SumIfSumIf
- SumIfsSumIfs
- SumProductSumProduct
- SumSqSumSq
- SumX2MY2SumX2MY2
- SumX2PY2SumX2PY2
- SumXMY2SumXMY2
- SYDSyd
- T_DistT_Dist
- T_Dist_2tT_Dist_2t
- T_Dist_RTT_Dist_RT
- T_InvT_Inv
- T_Inv_2TT_Inv_2T
- T_TestT_Test
- TanhTanh
- TBillEqTBillEq
- TBillPriceTBillPrice
- TBillYieldTBillYield
- TDistTDist
- ТекстText
- TInvTInv
- TransposeTranspose
- TrendTrend
- TrimTrim
- TrimMeanTrimMean
- TTestTTest
- USDollarUSDollar
- VarVar
- Var_PVar_P
- Var_SVar_S
- VarPVarP
- VdbVdb
- VLookupVLookup
- День неделиWeekday
- WeekNumWeekNum
- WeibullWeibull
- Weibull_DistWeibull_Dist
- WorkDayWorkDay
- WorkDay_IntlWorkDay_Intl
- XirrXirr
- XnpvXnpv
- YearFracYearFrac
- YieldDiscYieldDisc
- YieldMatYieldMat
- Расчета Z_TestZ_Test
- ZTestZTest
Обратная связь
Хотите оставить отзыв?
Войдите, чтобы оставить отзыв
Вы также можете оставить свой отзыв непосредственно на сайте GitHub .Оставить отзыв
Вы также можете оставить свой отзыв непосредственно на сайте GitHub .Наша новая система обратной связи основана на принципах работы с вопросами на GitHub. Прочтите об этом изменении в нашей записи блога.
Liquid error: Can't find the localized string giveDocumentationFeedback for template Conceptual.
Заголовок вопроса Оставить комментарийЗагрузка отзыва...
Нет открытых вопросов
Нет закрытых вопросов
- Документация по предыдущей версии
- Блог
- Участие в доработке
- Конфиденциальность и файлы cookie
- Условия использования
- Отзывы о сайте
- Товарные знаки
msdn.microsoft.com
Создание функций пользователя средствами VBA
Поиск ЛекцийПродолжая выполнение лабораторной работы, создадим функции, которые реализуют вычисления функций на каждой из ветвей, а также функцию, реализующую вычисление F(x), средствами VBA.Рассмотрим последовательность действий, выполняемых при создании пользовательских функций и включения их в библиотеку функций программы Excel.
Для создания новой функции, включаемой в библиотеку функций программы Excel, следует:
1. В меню "Сервис" выбираем команду "Макрос ►"и далее выполняем команду "Редактор Visual Basic". Открывающееся при этом окно программы Microsoft Visual Basicпоказано на рис. 7.
Рис. 7. Окно программы Microsoft Visual Basic
2. В окне программы Microsoft Visual Basicвыбираем меню "Insert"(Вставка). В этом меню выбирается и выполняется команда Module (Модуль). В результате выполнения этой команды в проект рабочей книги включается папка "Modules" (Модули), в которой создается первый модуль - "Module1".рабочее которого открывается Под полем проекта (Project - VBAProject) поле редактора, в котором будут создаваться пользовательские функции и процедуры.
3. В меню "Insert"(Вставка) окна Microsoft Visual Basic выбираем команду "Procedure…"(Процедура). Открывается окно "Add Procedure"(Вставить процедуру).
Рис. 8
В поле Name (Имя) вводим имя создаваемой функции. Например, F1V. Очень важно, чтобы имя функции не совпадало с именем какой-либо ячейки на листе книги. (Имена ячеек принимают значения от А1 до IV65536). Нарушение этого условия приводит к появлению ошибок при выполнении процедур и функций.
4. В группе Type (Тип) выбираем переключатель, определяющий тип создаваемой процедуры. Тип Sub (Подпрограмма) может быть использован для создания процедур, выполняющих какие-либо действия и не передающих в основную программу числовые значения. Тип процедуры Function (Функция) используется для определения подпрограмм, результатом выполнения которых является одно числовое или логическое значение, передаваемое (возвращаемое) в основную программу через имя функции.
В рассматриваемом примере выбираем переключатель типа Function.
5. В поле Scope (Область действия) выбираем переключатель Public (Общедоступный), обеспечивая тем самым доступность функции пользователя из любых других книг.
6. После нажатия кнопки ОК в поле редактора вносятся две строки заготовки функции:
Public Function F1V()
End Function
7. Используя эту заготовку, допишем функцию пользователя для вычислений на первой ветке разветвляющейся функции.
Public Function F1V(x, a, b)
F1V = a + Exp(b * x)
End Function
8. Для проверки работоспособности созданной функции F1V, используя "Мастер функций", запишем обращение к ней в ячейку С12. Для этого в окне первого шага "Мастера функций" в поле "Категория:" выбираем категорию "Определенные пользователем". Выбор функции F1Vи нажатие кнопки ОК открывает ДО для определения параметров обращения. На рис. 9 показан результат определения ссылок в полях окна второго шага "Мастера функций"
Рис. 9
Следует обратить внимание на то, что ссылки на параметры А и В должны быть абсолютными. Этим обеспечивается возможность "протягивания" формулы для вычисления значений функции F1Vв ячейках от С12 до С32.
9. Повторяя действия пунктов от 2 до 8, создаем функции F2VиF3V, реализующие соответственно функции для вычисления второй, третьей ветвей функции средствами алгоритмического языка Visual Basic. Ниже приведены тексты этих функций.
Public Function F2V(x, a, b)
F2V=(a+b*x)/(1+x)
End Function
Public Function F3V(x, a, b)
F3V = a / (b * x)
End Function
В записи выражений, реализующих функции F2V и F3V, следует обратить внимание на последовательность выполнения операций. Эта последовательность определяется приоритетами выполняемых операций и расстановкой круглых скобок.
Рассмотрим порядок выполнения операций по записи оператора для вычисления функции F2V
Первой выполняется операция умножения b на х. Второй выполняется операция сложения , в результате выполнения которой вычисляется значение числителя. Третьей операцией выполняется вычисление знаменателя (1 + х) и лишь после этого выполняется операция деления значения на (1 + х).
Неправильная расстановка скобок в записи выражений является наиболее часто встречающейся ошибкой.
10. Реализовав в модуле функции F1V, F2V, F3Vи заполнив соответствующие столбцы таблицы, переходим к записи процедуры для вычисления значения разветвляющейся функции. Назовем эту функцию QRF. Блок-схема её алгоритма приведена на рис. 1.
Реализация этой функции на языке программирования Visual Basic (VB) отличается от формата формулы, использованной нами в реализации функции средствами программы Excel.
Public Function QRF(x, a, b, alfa, betta)
'x - аргумент функции, a,b,alfa,betta - параметры
If (x < alfa) Then QRF = a + Exp(b * x) _
Else _
If (x <= betta) Then QRF = (a + b * x) / (1 + x) _
Else QRF = a / (b * x)
End Function
Для реализации логического условия "ЕСЛИ" в языке VBиспользуется логический оператор
If <условие> Then <значение_функции_на_1-й_ветви>
Else <значение_функции_на_2-й_ветви>
(Перевод слов: If - если, Then -тогда, Else - иначе).
Для записи операторов, в языке многострочных
Возможен другой вариант реализации разветвляющейся функции, в котором используются обращения к уже созданным ранее функциям F1V, F2V и F3V. Ниже приводится текст функции QRF1 с обращениями к этим функциям.
Public Function QRF1(x, a, b, alfa, betta)
'x - аргумент функции, a,b,alfa,betta - параметры
If (x < alfa) Then QRF1 = F1V(x, a, b) _
Else _
If (x <= betta) Then QRF1 = F2V(x, a, b) _
Else QRF1 = F3V(x, a, b)
End Function
На рис. 10 приведён фрагмент таблицы, в которую включены столбцы F(X) - вычисление разветвляющейся функции средствами программы Excel, QRF(X) и QRF1(X) - вычисление разветвляющейся функции с использованием двух вариантов реализации разветвляющейся функции средствами языка программирования VB.
Рис. 10
11. Сравнивая столбцы F(X), QRF(X) и QRF1(X)таблицы, мы видим их полную идентичность. В окончательном документе можно удалить два из этих трёх столбцов.
12. Перед построением графиков функций F1V, F2V, F3V иQRF1(X)обратим внимание на то, что в таблице значений функцииF2Vзначение функции для аргумента Х = -1 равно 4,053Е+15. Это большое число получается из-за того, что знаменатель функции в этой точке становится равным 0. Аналогичная особая точка имеется и в функции F3V при значении аргумента равном нулю. В таблице, приведенной на рис. 10, мы видим что при значении аргумента равном -2,8Е-16 в функции F3Vимеет место выброс. Вид графиков, построенных по данным, приведенным в таблице рис. 10, показан на диаграмме рис. 11.
Рис. 11.
13. Исключить влияние особых точек можно, построив отдельно график разветвляющейся функции. Если же мы всё-таки хотим получить диаграмму, позволяющую выполнить наглядное сравнение функций, то можно "сгладить" выбросы в особых точках, заменив в этих точках значения функций F2V и F3Vна максимальное или минимальное значение, достигаемые одной из табулируемых функций на интервале изменения аргумента.
14. Для определения максимального или минимального значений, достигаемых хотя бы одной из табулируемых функций, выполним следующие действия:
а) заменим значения функций в особых точках каким-либо числом, принадлежащим интервалу значений, определяемому таблицей. (В нашем примере можно ввести в соответствующие ячейки таблицы нули.)
б) Выделим все значения функций, входящие в таблицу. (В нашем случае это ячейки от В12 до Е32.)
в) Переведём УМ к полю автоматического вычисления итогов в строке состояния.
г) Для выбора функции автоматического подведения итогов выполним ЩПК и откроем контекстное меню с набором итоговых функций.
д) Выберем строку с названием функции "Минимум"è ЩЛК. Запишем минимальное числовое значение, отображаемое в поле итоговых формул строки состояния.
е) Повторим действия пункта "г)" и выберем функцию "Максимум".
15. Запишем полученные нами минимальное и максимальное значения в соответствующие ячейки обнуленные нами ранее. Таким образом, мы получим таблицу, из которой будут убраны "особые" точки.
16. По этой таблице построим графики функций и выполним необходимые операции начального форматирования диаграммы.
17. Выполняем форматирование заголовка документа, таблицы и окончательное форматирование диаграммы.
Рекомендуемые страницы:
poisk-ru.ru
Функции VBA для работы с текстом
Вход/Регистрация
Главная » Функции VBA » 28 Апрель 2011 Дмитрий 205037 просмотров- ASC()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC("D") вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
- AscB() — возвращает только первый байт числового кода для символа.
- AscW() — возвращает код для символа в кодировке Unicode
- Chr() — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — "), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.
Dim sWord As String sWord = Chr(34) & "Слово в кавычках" & Chr(34) Dim sWord As String sWord = Chr(34) & "Слово в кавычках" & Chr(34)
Есть варианты этой функции - ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
- InStr() и InStrRev()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.
Dim sStr As String sStr = "w" If InStr(1, "Hello, World!", sStr, vbTextCompare) > 0 Then MsgBox "Искомое слово присутствует!" Else MsgBox "Искомое слово отсутствует!" End If Dim sStr As String sStr = "w" If InStr(1, "Hello, World!", sStr, vbTextCompare) > 0 Then MsgBox "Искомое слово присутствует!" Else MsgBox "Искомое слово отсутствует!" End If
Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
- Left(), Right(), Mid()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.
Dim sStr As String sStr = "Hello, World!" MsgBox Mid(sStr, 1, 5) Dim sStr As String sStr = "Hello, World!" MsgBox Mid(sStr, 1, 5)
- Len() — возможность получить число символов в строке. Часто используется с циклами, операциями замены и т.п.
- LCase() и UCase() — перевести строку в нижний и верхний регистры соответственно. Часто используется для подготовки значения к сравнению, когда при сравнении регистр не важен (фамилии, названия фирм, городов и т.п.).
- LSet() и RSet() — возможность заполнить одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы.
- LTrim(), RTrim(), Trim() - возможность убрать пробелы соответственно слева, справа или и слева, и справа.
- Replace()— возможность заменить в строке одну последовательность символов на другую.
Dim sStr As String sStr = "Hello, World!" MsgBox Replace(sStr, "Hello", "Bay") Dim sStr As String sStr = "Hello, World!" MsgBox Replace(sStr, "Hello", "Bay")
- Space() — получить строку из указанного вами количества пробелов;Еще одна похожая функция — Spc(), которая используется для форматирования вывода на консоль. Она размножает пробелы с учетом ширины командной строки.
- StrComp() — возможность сравнить две строки.
- StrConv() — возможность преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.):
Dim sStr As String sStr = "Hello, World!" MsgBox StrConv("Hello, World!", vbUpperCase) Dim sStr As String sStr = "Hello, World!" MsgBox StrConv("Hello, World!", vbUpperCase)
В качестве второго параметра параметра могут применяться константы:
- vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
- vbLowerCase: Преобразует все текстовые символы в нижний регистр
- vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
- *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
- *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
- **vbKatakana: Преобразует символы Hiragana в символы Katakana
- **vbHiragana: Преобразует символы Katakana в символы Hiragana
- ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
- ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию
* применимо для локализацией Дальнего востока** применимо только для Японии*** не поддерживается операционными системами под управлением Macintosh
- StrReverse() — "перевернуть" строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
- Tab() — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
- String() — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().
Юридическая информация
Так же с этой статьей читают:
Наши партнеры
www.excel-vba.ru
Встроенные функции VBA
Образование Встроенные функции VBA
просмотров - 342
Логические выражения состоят из операндов и операций отношения и логических операций.
Результатом вычисления логического выражения может быть одно из двух логических значений: True (истина ) или False (ложь).
Г) Текстовые операции
Сложение строк. Важно заметить, что для сложения строк допустимо использование операции +, но предпочтительнее, во избежание путаницы, применять операцию со знаком &
Д) Приоритеты операций
VBA выполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовании значений выражений
Ø Операции в скобках
Ø Вычисление функций
Ø Возведение в степень
Ø Смена знака
Ø *, /, \, mod
Ø +, -
Ø >,>=, <, <=, <>, =
Ø Not
Ø And
Ø Or
В VBA имеется большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:
- Математические функции
- Функции проверки типов
- Функции преобразования форматов
- Функции обработки строк
- Функции времени и даты
Ниже рассмотрены основные функции из этих категорий.
Математические функции
В VBA имеется большой список математических функций, позволяющих произвести любые вычисления.
Функция | Возвращаемое значение | |||||
Abs (число) Atn (число) Cos (число) | Модуль (абсолютная величина)числа Арктангенс Косинус | |||||
Ехр (число) | Экспонента͵ т. е. результат возведения основания натурального логарифма в указанную степень | |||||
Log (число) | Натуральный логарифм | |||||
Rnd Rnd (число) | Возвращает случайное число из интервала [0,1] В случае если число меньше нуля, то Rnd возвращает каждый раз одно и то же число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то — следующее случайное число в последовательности; если число равняется нулю, то — случайное число, возвращенное при предыдущем вызове этой функции. Public Sub Процедура_RND() x = Rnd(-2) MsgBox "x=" & x End Sub Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox "x=" & x End Sub | |||||
Sgn (число) | Знак числа Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox "x=" & x z = -5 y = Sgn(z) MsgBox "y=" & y End Sub | |||||
Sin (число) | Синус | |||||
Sqr (число) | Квадратный корень из числа | |||||
Tan (число) | Тангенс | |||||
Fix (число) и Int (число) | Обе функции, int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями int и Fix состоит в том, что для отрицательного значения аргумента число функция int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному К примеру: Int(2.3)=2 fix(2.3)=2 Int(2.8)=2 fix(2.8)=2 Int(-2.3)=-3 fix(-2.3)=-2 Int(-2.3)=-3 fix(2.3)=-2 | |||||
Round(E[,N]) | Округляет число, округленное до определенного количества (N) десятичных знаков Public Sub as1() Dim d As Double d = 2.567 MsgBox Round(d, 1) 'выведет 2.6 End Sub | |||||
Примеры создания последовательности случайных чисел
1.
Public Sub случайное_число()
Randomize
For i = 1 To 3
s = Rnd
MsgBox "Случайное число=" & s
Next i
End Sub
Public Sub qqq()
Dim mv, ms As String
Randomize
ms = " "
For i = 0 To 9
mv = Int((6 * Rnd) + 1)
ms = ms & " " & mv
Next
MsgBox ms
End Sub
Преобразование строки в число и обратно осуществляют следующими функциями.
Val (строка) | Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа | ||
Str (число) | Возвращает значение типа variant (String), являющееся строковым представлением числа | ||
В качестве допустимого десятичного разделителя функция str воспринимает только точку. При наличии другого десятичного разделителя (к примеру, запятой) для преобразования чисел в строки следует использовать функцию cstr, описанную ниже.
Функции преобразования типов
В VBA имеются следующие функции преобразования типов выражений из данного в указанный.
Функция | Тип, в который преобразуется выражение | ||
CBool (Выражение) | Boolean | ||
CByte (Выражение) | Byte | ||
CCur (Выражение) | Currency | ||
CDate (Выражение) | Date | ||
СDbl (Выражение) | Double | ||
CDec (Выражение) | Decimel | ||
CInt (Выражение) | Integer | ||
CLng (Выражение) | Long | ||
CSng (Выражение) | Single | ||
CVar (Выражение) | Variant | ||
CStr (Выражение) | String Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox "x=" & x z = -5 y = Sgn(z) MsgBox "y=" & y c = Val(x) MsgBox "c=" & c b = Str(x) MsgBox "b=" & b v = CStr(x) MsgBox "v=" & v End Sub | ||
Функции обработки строк
В VBA имеются следующие функции обработки строковых выражений.
Функция | Возвращаемое выражение | ||
Asc (строка) | Возвращает код символа, соответствующий первой букве строки Public Sub zx() Dim ms As String d = Asc("Привет") MsgBox "d=" & d End Sub d=207 | ||
Chr (число) | Возвращает строку из одного символа, соответствующего коду числа, т.е возвращает символ, которому соответствует число d = Chr(207) MsgBox "d=" & d d= П | ||
Mid(S,N1[,N2]) | Возвращает строку, содержащую N2 (если указано, если не указано - то до конца строки) символов, начиная с позиции N1. Первое_слово=mid(“Mid Function Examle”,1,3) ‘Первое_слово=“Mid” | ||
Len(S) | Возвращает число символов строки S(включая начальные и конечные пробелы). | ||
Left(S,N) | Возвращает подстроку, состоящую из заданного N числа символов, начиная с левого края строки S. S=”Мама мыла раму” S1=Left(S,4) ‘S1=Мама | ||
Right(S,N) | Возвращает подстроку, состоящую из заданного N числа символов, начиная с правого края строки S. S=”Мама мыла раму” S1= Right (S,4) ‘S1= раму | ||
InStr([N,]S1,S2) | Возвращает позицию положения строки S2 в строке S1. При наличии N поиск начинается с позиции N. s1=”Abcdef” i= InStr(s1,”cd”) ‘i=3 s1=”Abcdcdef” i= InStr(4,s1,”cd”) ‘i=5 s1=”Abcdef” i= InStr(s1,”k”) ‘i=0 В случае если S2 в S1 не обнаружено, то результат = нулю | ||
Читайте также
ОБЪЕКТ.МЕТОД Например, ……………………………………… ‘удалить лист WorkSheets(“Обзор”) . Delete ……………………………………… Событие – это действие, распознаваемое объектом, для которого можно запрограммировать отклик (например, щелчок мышью по строке меню или нажатие клавиши).... [читать подробенее]
Синтаксис і дані мови VBA. Програмування в EXCEL Синтаксис – це сукупність правил, що визначають порядок використання і організацію елементів мови. Типи даних- це певні види даних, які VBA зберігає і може маніпулювати. Тип даних Опис і діапазон значення Byte ... [читать подробенее]
VBA - це всього лише інструмент, за допомогою якого створення якоїсь комп'ютерної моделі або розрахункової таблиці, може бути досягнута найменшими зусиллями. Наприклад, - одночасне визначення точки беззбитковості в багатономенклатурному виробництві для всіх видів... [читать подробенее]
ЛОГІЧНІ ОПЕРАТОРИ VBA Логічний оператор IMP Логічний оператор EQV Логічний оператор XOR Синтаксис: Операнд_1 XOR Операнд_2 Оператора XOR виконує логічне виключення. Результатом даної операції є значення True, якщо операнди мають різні значення, інакше - False. Таблиця... [читать подробенее]
Тип даних Розмір, байт Діапазон можливих значень Integer Числа від -32768 до 32767 (-215; 215-1) Long Числа від -2147483648 до 2147483647 (-231;231-1) Single Від’ємні числа від -3.4´1038 до -1.4´1045 Позитивні числа від 1.4´1045 до 3.4´1038 Double Від’ємні числа від -1.79´10308... [читать подробенее]
Операция расширения области видимости При объявлении внутри некоторой области видимости переменной с таким же именем, как у переменной во внешней области, переменная во внутренней области скрывает переменную, находящуюся во внешней области видимости. Таким... [читать подробенее]
Алгоритми розрізняють за структурою на : лінійні, розгалужені, циклічні. Лінійна структура використовується в алгоритмах, де одна дія виконується слідом за іншою послідовно в порядку розташування блоків , і при цьому жодна з дій не пропускається і не повторюється. ... [читать подробенее]
Об'єктно-орієнтоване програмування.Об'єктно-орієнтоване програмування це найбільш сучасний стиль в розробці комп'ютерних програм. Цей стиль використовується тому, що сучасне конструювання програм намагається добитися певної специфічної мети. Комп'ютерні програми... [читать подробенее]
Програмування в Excel. Лабораторна робота №11. Мета роботи: навчитися створювати макроси. Теоретичний матеріал: повторити поняття макросу, типи макросів, підпрограм VBA, функції VBA, VBE, адресацію в макросах: абсолютну і відносну. ЗАВДАННЯ ДО РОБОТИ: 1. Макрос - це... [читать подробенее]
19. Розробіть схему алгоритму з використанням текстового редактору MS WORD. 20. Увійдіть в середовище VBA WORD командою Сервис-Макрос- Редактор Visual Basic; 21. Розробіть форму з назвою Алгоритм циклічної структури, в якій будуть такі об'єкти: · 4 написи Label1 – Label4 (один напис для... [читать подробенее]
oplib.ru