VBA 学习(14)

 

VBA函数:Magbox、InputBox、application.worksheetfunction的实...



VBA函数:Magbox、 InputBox、application.worksheetfunction的实用

用Excel的时间相信你也不短了,什么是函数就不再细说了。

与其他编程语言一样,VBA含有各种内置的函数。很多的VBA函数都与Excel的工作表函数类似,或者一样。

使用VBA函数的的方式与使用工作表公式中函数的方式相同,在VBA代码中,我们可以使用很多Excel的工作表函数,例如Sum,Abs等。

例如:

Private Sub CommandButton1_Click()

Dim i As Integer

i = -1

Dim ii As Integer

ii = Abs(i)

Range("a1").Value = "-1的绝对值为:" & ii

End Sub

这是一个求绝对值的过程,通过用户输入一个数值给变量a,再用Abs函数求出变量的绝对值,最后在range("a1")中显示出结果。

注意并不是所有的工作表函数在VBA里都可以直接调用,但由于WorksheetFunction对象包含在Application对象中,如果我们要在VBA语句里使用某个不能直接调用的工作表函数,只需要在函数名称前加上Application.WorksheetFunction语语即可。

如:在VBA里使用count函数则代码为: application.worksheetfunction.count(range("a1:a10"))

VBA函数1) Abs :返回一个数的绝对值2) Array :返回包含一个数组的变量3) AsC :将字符串的第一个字符转换成它的ASCII值4) Atn :返回一个值的正切值5) CallByName :执行方法,设置或返回对象的某个属性6) CBool :将表达式转换成Boolean数据类型7) CByte : 将表达式转换成Byet数据类型8) CCur : 将表达式转换成CurrencY数据类型9) CDate : 将表达式转换成Date数据类型10) CDbl : 将表达式转换成Double数据类型11) CDec : 将表达式转换成decimal数据类型12) Choose :选择或返回参数列表中的某个值13) Chr :将字符代码转换成字符串14) CInt;将表达式转换成integer数据类型15) CLng :将表达式转换成long数据类型16) Cos :返回一个数值的余弦值17) CreateObject :创建一个ole自动对象18) CSng : 将表达式转换成single数据类型19) CStr :将表达式转换成string数据类型20) CurDir :返回当前的路径21) CVar : 将表达式转换成variant数据类型22) CVDate : 将表达式转换成dade数据类型23) CVErr :返回对应错误编号的用户定义错误值24) Date :返回当前系统日期25) DateAdd :给某个日期添加时间间隔26) DatEDiff :返回某两个日期的时间间隔27) VBA函数28) DatePart :返回日期特定的部分29) DateSerial :将日期转换成序列号30) DateValue :将字符串转换成日期31) Day :返回一月中的某一天32) DDB :返回某个资产的折旧33) Dir :返回与模式匹配的文件或目录的名称34) DoEvents :转让控制权,以便让操作系统处理其它事件35) ENVIRON :返回一个操作系统环境字符串36) Eof :如果达到文本文件末尾就返回TRUE37) Error :返回对应于错误编号的错误消息38) Exp :返回自然对数(E)的某次方39) EileAttr :返回文本文件文件模式40) FileDateTime :返回上次修改时的日期和时间41) FileLen :返回文件中的字节数42) Filter :返回指定筛选条件的一个字符串数组的子集43) Fix :返回一个数的整数部分44) Format :以某种特殊的格式显示表达式.45) FormatCurrency :返回系统货币符号格式化后的表达式46) FormatDateTime :返回格式化为日期或者时间的表达式47) FormatNumber :返回格式化为数值的表达式48) FormatPercent :返回格式化为百分数的表达式49) FreeFile :当处理文本文件时,返回下一个可用的文件编号50) Fv :返回年金终值51) GetAllSettings :返回windows注册表中的设置和值的列表52) GetAttr:返回表示文件属性的代码53) GetObject:从文件中检索一个OLE自动化对像54) GetSetting:返回windows注册表中应用程序项的特定设置55) Hex:从十进制转换成十六进制数56) Hour:返回一天中的某一个钟点57) Iif:求出表达式的值并返回两部分之一58) Inupt:返回顺序文本文件中的字符59) InpuBox:显示一个消息框提示用户输入信息60) InStr 返回字符串在另一个符串中的位置61) InstRev从字符串的末尾开始算起,返回字符串在另一个字符串中的位置62) Int:返回一个数的整数部分63) IPmt:返回在一段时间内对年金所支付的利息值64) IRR:返回一系列周期性现金流的内部利率65) IsArray 如果变量是一个数组,就返回TRUE66) IsDate 如果变量是一个日期,就返回TRUE67) IsEmpty 如果没有初始变量,就返回TRUE68) IsError:如果变量是一个错误值,就返回TRUE69) IsMissing:如果没有向过程传递可选的参数,就返回TRUE70) IsNull:如果表达式包含一个NULL值,就返回TRUE71) InNumeric:如果表达式是一个数值,就返回TRUE72) IsObjec:如果表达式引用了OLE自动化对象,就返回TRUE73) Join:将包含在数组中的字符串连接起来74) LBound返回数组维可用的最小下标75) Lcase:返回转换为小写字母的字符串76) Left:从字符串左边开始算起,返回指定数量的字符77) Len:返回字符串中的字符数量78) Loc 返回当前读或写文本文件的位置79) Lof:返回打开文本中的字节数80) Log:返回一个数的自然对数81) LTrim:返回不带前导空格的字符串的副本82) Mid:返回字符串中指定数量的字符83) Minute:返回一小时中的某分钟84) MIRR:返回一系列修改过的周期性现金流的内部利率85) Month:返回一年中的某个月份86) MonthName:作为字符串返回某个月份87) MsgBox:显示模态消息框88) Now:返回当前的系统日期和时间89) NPer:返回年金总期数90) NPV 返回投资净现值91) Oct:从十进制转换成八进制92) Partition:返回代表值写入的单元格区域的字符串93) Pmt 返回年金支付额94) Ppmt 返回年金的本金的偿还额95) PV:返回年金现值96) QBcolor:返回红绿蓝颜色码97) Rate :返回每一期的年金利率98) Replace:返回其中的子字符串被另一字符串取代的字符串99) RGB 返回代表RGB颜色的数值VBA里面的函数很多,以上表格只是vba函数的一小部分,具体你可以F1,这些函数可以简化我们的计算和操作,功能强大啊。但当你面对那一堆英文字母,是否为该怎么记住它们感到晕菜?有人对我说,记住常用的几个,其他的不用记那么清楚,有个模糊的印向,用时再翻Help,知道在哪里找就万事OK了。我觉得这个方法很好,现转送给你!

Msgbox

msgbox是对话框的意思,MsgBox函数用于输出一个对话框,该函数在编程调试以及输出结果方面具有极为重要的意义。

首先来看一下MsgBox的基本语法格式:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

下面就其中的各参数进行详细的讲解。

prompt参数(必选参数):该参数用于表明输出对话框所显示的内容,由于该参数只代表长度为255个字符的一个字符串,因此我们可以使用“&”连接符将各部分字符串连接起来,同时可以借助函数“Chr(10)”实现换行操作。其中一种效果如图:



  1. Buttons参数(可选参数):用于定义输出窗口的按钮样式及图标显示类型,常见按钮样式如下:按钮类型           对应数值     描述vbOKOnly               0     只显示 OK 按钮。VbOKCancel             1     显示 OK 及 Cancel 按钮。VbAbortRetryIgnore     2     显示 Abort、Retry 及 Ignore 按钮。VbYesNoCancel          3     显示 Yes、No 及 Cancel 按钮。VbYesNo                4     显示 Yes 及 No 按钮。VbRetryCancel          5     显示 Retry 及 Cancel 按钮。VbCritical            16     显示 Critical Message 图标。VbQuestion            32     显示 Warning Query 图标。VbExclamation         48     显示 Warning Message 图标。VbInformation         64     显示 Information Message 图标。如图为设置按钮类型为“VbInformation”时的效果:
  2. Title参数(可选参数):用于定义在输出窗口标题栏处显示的文本内容,如图设置其标题栏为“提示”时的效果:
  3. MsgBox的返回值:该输出框会根据用户所点击的按钮的类型返回对应的常量:常数        值      描述vbOK         1     OKvbCancel     2     CancelvbAbort      3     AbortvbRetry      4     RetryvbIgnore     5     IgnorevbYes        6     YesvbNo         7     No编写如图所示的验证代码:Sub 实例MsgBox()If vbOK = (MsgBox("请点击确定按钮", vbOKCancel, "提示")) ThenMsgBox "确定按钮被点击", vbOKOnlyEnd IfEnd Sub
  4. 点击“运行子过程”按钮。
  5. 就可以看到效果啦。
InputBox

InputBox 可以显示一个简单的对话框,以便输入代码所需要的的信息。此对话框有一个“确定”按钮和一个“取消”按钮。如果选取了“确定”按钮,则 InputBox 将返回对话框中输入的值。如果单击“取消”按钮,则 InputBox 的值为 False。

InputBox的语法为:

InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)

Prompt   String 类型,必需。对话框中显示的信息。可为字符串、数字、日期、或者一个布尔值(在显示之前,Microsoft Excel 自动将其值强制转换为 String 类型)。

Title   Variant 类型,可选。输入框的标题。如省略此参数,将使用默认的标题。

Default   Variant 类型,可选。指定一个初始值,并在对话框显示时出现在文本框中。如省略此参数,文本框的内容将是空的。此值可为一个Range对象。

Left   Variant 类型,可选。指定对话框相对于屏幕左上角的 x 坐标,用磅表示。

Top   Variant 类型,可选。指定对话框相对于屏幕左上角的 y 坐标,用磅表示。

HelpFile   Variant 类型,可选。此输入框使用的帮助文件名。如果存在 HelpFile 和 HelpContextID参数,对话框中将出现一个帮助按钮。

HelpContextId   Variant 类型,可选。HelpFile 中帮助上下文标识号。

Type   Variant 类型,可选。指定返回的数据类型。如果省略此参数,对话框将返回文本。可以是下列值的其中一个或其中几个的和。

值含义0公式1数字2文本 (字符串)4逻辑值 (True 或 False)8单元格引用,作为一个 Range对象16错误值,如 #N/A64数值数组

InputBox 就是一个信息输入框,如下图:



部分

描述

Prompt

作为对话框消息出现的字符串表达式。

prompt

的最大长度大约是

1024

个字符,由所

用字符的宽度决定

Title

显示对话框标题栏中的字符串表达式。如果省略

title

,则把应用程序名放入标题栏中

Default

显示文本框中的字符串表达式,在没有其他输入时作为默认值

Xpos

数值表达式,成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略

xpos



则对话框会在水平方向居中

Y

pos

数值表达式,成对出现,指定对话框的上边与屏幕上边的距离。如果省略

ypos

,则对

话框被放置在屏幕垂直方向距下边大约三分之一的位置

Helpfile

字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助

Context

数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号



其中最重要的是前面三个参数,包括提示信息、对话框标题和默认值。

在特殊情况下,第四、第五参数也具有其实用价值——强制指定对话框的显示位置,从

其中最重要的是前面三个参数,包括提示信息、对话框标题和默认值。在特殊情况下,第四、第五参数也具有其实用价值——强制指定对话框的显示位置,从而防止对话框挡住当前窗口。

好了,本节讲的够多了,下节我们解读几个有关inputbox的小程序!
在下方的二维码上常按3秒钟,点击识别二维码关注我
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++


    关注 一生奋斗


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册