📄 vba函数说明.htm
字号:
</tr>
<tr vAlign="top">
<td class="T" width="13%"><i>index</i></td>
<td class="T" width="87%">必要参数,数值表达式或字段,它的运算结果是一个数值,且界于
1 和可选择的项目数之间。</td>
</tr>
<tr vAlign="top">
<td class="T" width="13%"><i>choice</i></td>
<td class="T" width="87%">必要参数,Variant
表达式,包含可选择项目的其中之一。</td>
</tr>
</tbody>
</table>
<p><b>说明</b></p>
<p class="T"><b>Choose </b>会根据 <i>index </i>的值来返回选择项列表中的某个值。如果
<i>index </i>是 1,则 <b>Choose</b> 会返回列表中的第 1
个选择项。如果 <i>index </i>是 2,则会返回列表中的第 2
个选择项,以此类推。</p>
<p class="T">可以使用 <b>Choose </b>来查阅一个列表中的项目。例如,如果
<i>index </i>所指定的值为 3,而 <i>choice-1</i> = "one"、<i>choice-2</i>
= "two"、且 <i>choice-3</i> = "three",那么 <b>Choose</b>
将返回 "three"。当 <i>index </i>代表一选项组中的值时,则这项功能将会特别有用。</p>
<p class="T">即使它只返回一个选项值,<b>Choose </b>仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了
<b>MsgBox</b>
函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。</p>
<p class="T">当 <i>index</i>小于 1 或大于列出的选择项数目时,<b>Choose
</b>函数返回 Null。</p>
<p class="T">如果 <i>index</i>
不是整数,则会先四舍五入为与其最接近的整数。</p>
<h1 align="center"><font color="#FFFFFF">Chr 函数 </font></h1>
<p class="T">返回 String,其中包含有与指定的字符代码相关的字符
。</p>
<p><b>语法</b></p>
<p class="SYN"><b>Chr(</b><i>charcode</i><b>)</b>
<p class="T">必要的 <i>charcode</i> 参数是一个用来识别某字符的 Long。</p>
<p><b>说明</b></p>
<p class="T">0 到 31 之间的数字与标准的非打印 ASCII
代码相同。例如,<b>Chr(</b>10<b>)</b> 可以返回换行字符。<i>charcode
</i>的正常范围为 0 – 255。然而,在 DBCS
系统,<i>charcode </i>的实际范围为 -32768 到 65535。</p>
<p class="NT"><b>注意</b> <b>ChrB</b> 函数作用于包含在 <b>String </b>中的字节数据。<b>ChrB
</b>总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。<b>ChrW</b>
函数返回包含 Unicode 的 <b>String</b>,若在不支持
Unicode 的平台上,则其功能与 <b>Chr </b>函数相同。</p>
<p class="NT"><b>注意 </b>Visual Basic for the Macintosh 不支持Unicode
字符串。因此,当n 值在128 – 65,535 范围内时, <b>ChrW</b>(<i>n</i>)
不能像在Windows环境中那样返回所有的 Unicode
字符。相反地,当Unicode 的n 值大于127 时,<b>ChrW</b>(<i>n</i>)
会试图做一个“最好的猜测”。因此,在Macintosh
环境中,不能使用<b>ChrW</b> 。</p>
<h1 align="center"><font color="#FFFFFF">Command 函数</font> </h1>
<p class="T">返回命令行的参数部分,该命令行用于装入
Microsoft Visual Basic 或 Visual Basic 开发的可执行程序。Visual Basic <b>Command</b>
函数在 Microsoft Office 应用程序中不可用。</p>
<p><b>语法</b></p>
<p class="SYN"><b>Command</b>
<p><b>说明</b></p>
<p class="T">当从命令行装入 Visual Basic 时,<code>/cmd</code>
之后的命令行的任何部分作为命令行的参数传递给程序。下面的示例中,<code>cmdlineargs</code>
代表 <b>Command</b> 函数返回的参数信息。</p>
<pre class="CT"><code>VB /cmd cmdlineargs
</code></pre>
<p class="T">对于使用 Visual Basic 开发并编译为 .exe
文件的应用程序,<b>Command</b>
返回出现在命令行中应用程序名之后的任何参数。例如:</p>
<pre class="CT"><code>MyApp cmdlineargs
</code></pre>
<p class="T">想知道如何在正在使用的应用程序的用户界面中改变命令行参数,请搜寻关于“命令行参数”的帮助。</p>
<h1 align="center"><font color="#FFFFFF">Cos 函数 </font></h1>
<p class="T">返回一个 <b>Double</b>,指定一个角的余弦值。</p>
<p><b>语法</b></p>
<p class="SYN"><b>Cos(</b><i>number</i><b>)</b>
<p class="T">必要的 <i>number</i> 参数是一 Double 或任何有效的数值表达式,表示一个以弧度为单位的角。</p>
<p><b>说明</b></p>
<p class="T"><b>Cos</b>
函数的参数为一个角,并返回直角三角形两边的比值。该比值为角的邻边长度除以斜边长度之商。</p>
<p class="T">结果的取值范围在 -1 到 1 之间。</p>
<p class="T">为了将角度转换成弧度,请将角度乘以 pi/180。为了将弧度转换成角度,请将弧度乘以
180/pi。</p>
<h1 align="center"><b><font color="#FFFFFF">CreateObject 函数</font></b><font color="#FFFFFF"> </font> </h1>
<p class="T">创建并返回一个对 ActiveX
对象的引用。</p>
<p><b>语法</b></p>
<p class="SYN"><b>CreateObject(</b><i>class,[servername]</i><b>)</b>
<p class="T"><b>CreateObject</b> 函数的语法有如下部分:</p>
<table cellSpacing="4" cols="2" cellPadding="4" rules="all" border="1" frame="box">
<tbody>
<tr vAlign="top">
<th width="50%">部分</th>
<th width="50%">描述</th>
</tr>
<tr vAlign="top">
<td class="T" width="50%"><i>class</i></td>
<td class="T" width="50%">必需的;<b> Variant</b> (<b>String</b>).
要创建的应用程序名称和类。</td>
</tr>
<tr vAlign="top">
<td class="T" width="50%"><i>servername</i></td>
<td class="T" width="50%">可选的;<b> Variant</b> (<b>String</b>).
要在其上创建对象的网络服务器名称。如果<i>servername </i>是一个空字符串(""),即使用本地机器。</td>
</tr>
</tbody>
</table>
<br>
<i>class</i> 参数使用 <i>appname</i><b>.</b><i>objecttype</i>
这种语法,包括以下部分:
<table cellSpacing="4" cols="2" cellPadding="4">
<tbody>
<tr vAlign="top">
<th width="17%">部分</th>
<th width="83%">描述</th>
</tr>
<tr vAlign="top">
<td class="T" width="17%"><i>appname</i></td>
<td class="T" width="83%">必需的;<b>Variant</b>(<b>字符串</b>)。提供该对象的应用程序名。</td>
</tr>
<tr vAlign="top">
<td class="T" width="17%"><i>objecttype</i></td>
<td class="T" width="83%">必需的;<b>Variant</b>(<b>字符串</b>)。待创建对象的类型或类。</td>
</tr>
</tbody>
</table>
<p><b>说明</b></p>
<p class="T">每个支持自动化的应用程序都至少提供一种对象类型。例如,一个字处理应用程序可能会提供
<b>Application</b> 对象,<b>Document</b> 对象,以及 <b>Toolbar</b>
对象。</p>
<p class="T">要创建 ActiveX 对象,只需将 <b>CreateObject</b>
返回的对象赋给一个对象变量:</p>
<pre class="CT"><code>'</code>声明一个对象变量来存放该对象
<code>'</code>的引用。<code>Dim as Object </code>采用后期绑定方式。
<code>Dim ExcelSheet As Object</code>
<code>Set ExcelSheet = CreateObject("Excel.Sheet")</code>
</pre>
<p class="T">上述代码将启动该应用程序创建该对象,在本例中就是创建一个
Microsoft Excel
电子数据表。对象创建后,就可以在代码中使用自定义的对象变量来引用该对象。在下面的示例中,可以使用对象变量
<code>ExcelSheet</code> 来访问新建对象的属性和方法,以及访问
Microsoft Excel 的其它对象,包括应用程序对象和单元格集合。</p>
<pre class="CT"><code>'</code>设置<code> Application </code>对象使<code> Excel </code>可见
<code>ExcelSheet.Application.Visible = True</code>
<code>'</code>在表格的第一个单元中写些文本
<code>ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"</code>
<code>'</code>将该表格保存到<code>C:\test.xls </code>目录
<code>ExcelSheet.SaveAs "C:\TEST.XLS"</code>
<code>'</code>使用应用程序对象的<code> Quit </code>方法关闭<code> Excel</code>。
<code>ExcelSheet.Application.Quit</code>
<code>'</code>释放该对象变量
<code>Set ExcelSheet = Nothing</code>
</pre>
<p class="T">使用 <code>As Object</code>
子句声明对象变量,可以创建一个能包含任何类型对象引用的变量。不过,该变量访问对象是后期绑定的,也就是说,绑定在程序运行时才进行。要创建一个使用前期绑定方式的对象变量,也就是说,在程序编译时就完成绑定,则对象变量在声明时应指定类
ID。例如,可以声明并创建下列 Microsoft Excel 引用:</p>
<p class="NT"><code>Dim xlApp As Excel.Application</code></p>
<p class="NT"><code>Dim xlBook As Excel.Workbook</code></p>
<p class="NT"><code>Dim xlSheet As Excel.WorkSheet</code></p>
<p class="NT"><code>Set xlApp = CreateObject("Excel.Application")</code></p>
<p class="NT"><code>Set xlBook = xlApp.Workbooks.Add</code></p>
<p class="NT"><code>Set xlSheet = xlBook.Worksheets(1)</code></p>
<p class="T">前期绑定的变量引用可以提供更好的性能,但该变量只能存放声明中所指定的类的引用。</p>
<p class="T">可以将 <b>CreateObject</b>
函数返回的对象传给一个参数为对象的函数。例如,下面的代码创建并传递了一个
Excel.Application 对象的引用:</p>
<pre class="CT"><code>Call MySub (CreateObject("Excel.Application"))
</code></pre>
<p class="T">可以在一个远端连网的计算机上创建一个对象,方法是把计算机的名称传递给
<b>CreateObject</b> 的 <i>servername</i>
参数。这个名称与共享名称的机器名部份相同:对于一个共享名称为"\\MyServer\Public,"
的 <i>servername</i> 参数是 "MyServer" 。</p>
<p class="NT"><b>注意</b>
关于使应用程序在远程网络计算机上可见的详细信息,请参阅
COM 文档 (参阅<i>Microsoft Developer Network</i>)。您可能必须给应用程序添加注册号。</p>
<p class="T">下面的代码返回在一个名为 <code>MyServer </code>的远端计算机上运行的
Excel 实例的版本号:</p>
<pre class="CT"><code>Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version
</code></pre>
<p class="T">如果远端服务器不存在或者不可用,则会发生一个运行时错误。</p>
<p class="NT"><b>注意</b> 当该对象当前没有实例时,应使用 <b>CreateObject</b>。如果该对象已有实例在运行,就会启动一个新的实例,并创建一个指定类型的对象。要使用当前实例,或要启动该应用程序并加载一个文件,可以使用
<b>GetObject</b> 函数。</p>
<p class="NT">如果对象已登记为单个实例对象,则不管执行多少次
<b>CreateObject</b>,都只能创建该对象的一个实例。</p>
<h1 align="center"><font color="#FFFFFF">CurDir 函数 </font> </h1>
<p class="T">返回一个 <b>Variant</b> (<b>String</b>),用来代表当前的路径。</p>
<p><b>语法</b></p>
<p class="SYN"><b>CurDir</b>[<b>(</b><i>drive</i><b>)</b>]</p>
<p class="T">可选的 <i>drive</i> 参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或
<i>drive</i> 是零长度字符串 (""),则 <b>CurDir</b>
会返回当前驱动器的路径。 在 Macintosh上,<b>CurDir</b>
忽略任何指定的 <i>drive</i> ,并只简单地返回当前驱动器的路径。</p>
<h1 align="center"><font color="#FFFFFF">CVErr 函数</font> </h1>
<p class="T">返回 <b>Error </b>子类型的 Variant,其中包含指定的错误号。</p>
<p><b>语法</b></p>
<p class="SYN"><b>CVErr(</b><i>errornumber</i><b>)</b>
<p class="T">必要的 <i>errornumber</i> 参数可以是任何有效的错误号代码。</p>
<p><b>说明</b></p>
<p class="T">可以在过程中,使用
<b>CVErr </b>函数来创建用户自定义错误。例如,如果创建一个函数,它可以接受若干个参数,且正常返回一个字符串,则可以让函数来判断输入的参数,确认它们是在可接受的范围内。如果不是的话,此函数将不会返回所要的字符串。在这种情况下,<b>CVErr
</b>可以返回一个错误号,并告知应该采取的行动。</p>
<p class="T">注意,<b>Error </b>的隐式转换是不允许的,例如,不能直接把
<b>CVErr </b>的返回值赋值给一个非 <b>Variant </b>的变量。然而,可以对
<b>CVErr </b>的返回值进行显式转换(使用 <b>CInt</b>、<b>CDbl</b>
等等),并赋值给适当的数据类型变量。</p>
<h1 align="center"><font color="#FFFFFF">Date 函数 </font> </h1>
<p class="T">返回包含系统日期的 <b>Variant</b> (<b>Date</b>)。</p>
<p><b>语法</b></p>
<p><b>Date</b></p>
<p><b>说明</b></p>
<p class="T">为了设置系统日期,请使用 <b>Date </b>语句。</p>
<h1 align="center"><font color="#FFFFFF">DateAdd 函数</font></h1>
<p class="T">返回包含一个日期的 <b>Variant</b> (<b>Date</b>),这一日期还加上了一段时间间隔。</p>
<p><b>语法</b></p>
<p class="SYN"><b>DateAdd(<i>interval, number, date</i>)</b>
<p class="T"><b>DateAdd </b>函数语法中有下列命名参数:</p>
<table cellSpacing="4" cols="2" cellPadding="4">
<tbody>
<tr vAlign="top">
<th width="15%">部分</th>
<th width="85%">描述</th>
</tr>
<tr vAlign="top">
<td class="T" width="15%"><b><i>interval</i></b></td>
<td class="T" width="85%">必要。字符串表达式,是所要加上去的时间间隔。</td>
</tr>
<tr vAlign="top">
<td class="T" width="15%"><b><i>number</i></b></td>
<td class="T" width="85%">必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。</td>
</tr>
<tr vAlign="top">
<td class="T" width="15%"><b><i>date</i></b></td>
<td class="T" width="85%">必要。<b>Variant</b> (<b>Date</b>)
或表示日期的文字,这一日期还加上了时间间隔。</td>
</tr>
</tbody>
</table>
<br>
<b>设置</b>
<p class="T"><b><i>interval </i></b>参数具有以下设定值:</p>
<table cellSpacing="4" cols="2" cellPadding="4">
<tbody>
<tr vAlign="top">
<th width="15%">设置</th>
<th width="85%">描述</th>
</tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -