`

Excel VBA学习笔记-2

 
阅读更多

1.从函数中返回字符串

 

某些函数具有两种版本:一种返回 Variant 数据类型,而另一种返回 String 数据类型Variant 版本较为方便因为变形体会自动地处理不同类型间的传输。它们同时也允许 Null 通过表达式来发送。String 版本较具有效率,因为它们使用较少的内存。

当有下列之情形时可考虑使用 String 版本:

 a,程序很大并且使用很多的变量

 b,将数据直接写到随机存取文件中

 

 

 

当在函数名称后面加上一个美元符号($)时,下列的函数会对于 Sting 变量返回一个数值。这些函数若不加上美元符号用法与语法与 Variant 相等。

 

 

2.可选的参数

 

 

在过程的定义中,可选的参数前会有一个 Optional 关键字。在过程的定义中也可以指定一个缺省值赋予可选的参数。例如:

 

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA")
. . .
End Sub

 

 

3.参数数组

 

参数数组可用来传递数组的参数过程。所以当定义过程时就不用知道数组中的元素个数。

使用 ParamArray 关键字来指示一个参数数组。而此数组必须被声明为 Variant 类型的数组,并且此数组必须是过程定义中最后面那个参数。

 

 

 

Sub AnyNumberArgs(strName As String, ParamArray intScores() As Variant)
    Dim intI As Integer

    Debug.Print strName; "    Scores"
    ' 用 UBound 函数决定数组的上限。
    For intI = 0 To UBound(intScores())
        Debug.Print "          "; intScores(intI)
    Next intI
End Sub

Sub test()

AnyNumberArgs "Jamie", 10, 26, 32, 15, 22, 24, 16

AnyNumberArgs "Kelly", "High", "Low", "Average", "High"

End Sub
 

4.使用数组

缺省规定,数组的索引是从零开始,所以curExpense(364)的上标界是364,具有365个元素

a、可以在模块的顶部使用 Option Base 语句,将第一个元素的缺省索引值从 0 改成 1。

 

Option Base 1
Dim curExpense(365) As Currency

 

b、也可以利用 To 子句来对数组的底层绑定做显示地声明

 

Dim curExpense(1 To 365) As Currency
Dim strWeekday(7 To 13) As String
 

 

5.使用 Do...Loop 语句

a.直到条件为 True 时重复语句:

 

Sub ChkFirstWhile()
    counter = 0
    myNum = 20
    Do While myNum > 10
        myNum = myNum - 1
        counter = counter + 1
    Loop
    MsgBox "The loop made " & counter & " repetitions."
End Sub

Sub ChkLastWhile()
    counter = 0
    myNum = 9
    Do
        myNum = myNum - 1
        counter = counter + 1
    Loop While myNum > 10
    MsgBox "The loop made " & counter & " repetitions."
End Sub

 

 b.直到条件变成 True 才重复语句:

 

Sub ChkFirstUntil()
    counter = 0
    myNum = 20
    Do Until myNum = 10
        myNum = myNum - 1
        counter = counter + 1
    Loop
    MsgBox "The loop made " & counter & " repetitions."
End Sub

Sub ChkLastUntil()
    counter = 0
    myNum = 1
    Do
        myNum = myNum + 1
        counter = counter + 1
    Loop Until myNum = 10
    MsgBox "The loop made " & counter & " repetitions."
End Sub

 

 c.从循环内退出 Do...Loop 语句:

 

Sub ExitExample()
    counter = 0
    myNum = 9
    Do Until myNum = 10
        myNum = myNum - 1
        counter = counter + 1
        If myNum < 10 Then Exit Do
    Loop
    MsgBox "The loop made " & counter & " repetitions."
End Sub

 

 

6.使用 For Each...Next 语句

a.对某范围的单元格做循环:

 

Sub RoundToZero()
    For Each myObject in myCollection
        If Abs(myObject.Value) < 0.01 Then myObject.Value = 0
    Next
End Sub

 

 b.在完成前退出 For Each...Next 循环:

 

Sub TestForNumbers()
    For Each myObject In MyCollection
        If IsNumeric(myObject.Value) = False Then
            MsgBox "Object contains a non-numeric value."
            Exit For
        End If
    Next c
End Sub

 

 

7.使用 For...Next 语句

使用 Step 关键字,可以由所指定的值增加或减少计数变量

 

Sub TwosTotal()
    For j = 2 To 10 Step 2
        total = total + j
    Next j
    MsgBox "The total is " & total
End Sub

 

 为了减少计数变量的值,可以使用负的 Step 值。为了减少计数变量的值,必须指定一个小于开始值的结束值。在下面的示例中,计数变量 myNum 会在每次循环重复时减去 2。当循环完成时,total 的值为 16、14、12、10、8、6、4 和 2 的总合。

 

Sub NewTotal()
    For myNum = 16 To 2 Step -2
        total = total + myNum
    Next myNum
    MsgBox "The total is " & total
End Sub

 

 8.使用 Select Case 语句

 

Function Bonus(performance, salary)
    Select Case performance
        Case 1
            Bonus = salary * 0.1
        Case 2, 3
            Bonus = salary * 0.09
        Case 4 To 6
            Bonus = salary * 0.07
        Case Is > 8
            Bonus = 100
        Case Else
            Bonus = 0
    End Select
End Function

 

 

9.将数据写到文件中

 

顺序访问(Input、Output 和 Append 方式)被用来写入文本文件,比如错误登录和报告。

 

随机访问(Random 方式)被用来读取与写入数据到文件并且没有关闭文件。随机访问文件在记录中保留数据,如此可很快的找出信息所在。

 

二进制访问(Binary 方式)被用来读取或写入数据到文件中任何的字节位置,例如存储或显示一个位图图象。 

注意 Open 语句不可以用来打开一个应用程序专属的文件类型。例如,不可使用 Open 去打开一个 Word 文档, a ,Microsoft Excel 的电子数据表,或是 Microsoft Access 数据库。若如此做的话会丢失文件的完整性,并造成文件的毁损。 

 

当从文件读取数据和写入数据到文件时,下表列出了所使用的典型语句。

 

访问类型 写入数据 读取数据
顺序 Print #, Write # Input #
随机 Put Get
二进制 Put

Get

 

分享到:
评论

相关推荐

    Excel VBA学习笔记

    这篇“Excel VBA学习笔记”涵盖了多个关键知识点,下面将对这些内容进行详细讲解。 一、VBA基础 1. **环境介绍**:VBA开发环境包括VBE(Visual Basic Editor)编辑器,它提供了代码编辑器、项目浏览器、对象浏览器...

    EXCEL VBA ListView+Toolbar 控件学习笔记

    EXCEL VBA ListView+Toolbar 控件学习笔记,加示例和代码

    VBA学习笔记系列----WorkBookworksheetsRange对象[汇编].pdf

    VBA学习笔记系列----WorkBook、Worksheets、Range对象是 Microsoft Excel 中的三个重要对象,它们分别代表 Excel 工作簿、工作表和单元格范围。在本文中,我们将详细介绍这三个对象的属性和方法,以及它们之间的关系...

    Day1-跟着孙兴华学习Excel VBA 第二季

    Day1-跟着孙兴华学习Excel VBA 第二季

    【免费下载】ExcelVBA和WordVBA教程.rar

    通过学习Excel VBA,你可以: 1. **宏录制**:Excel内置的宏录制功能可以帮助初学者快速入门,记录并回放一系列操作,无需深入了解代码。 2. **对象模型**:理解Excel的对象模型是编写高效VBA的关键。主要包括...

    ExcelVBA与WordVBA教程第4季.pdf

    ExcelVBA和WordVBA是Microsoft Office套件中两种强大的自动化工具,它们允许用户通过编程方式来控制和自定义这两个程序的行为。本教程主要聚焦于第4季的内容,深入讲解了对象、集合、属性和方法等核心概念。 首先,...

    ExcelVBA入门笔记,看了你也可以轻松入门VBA!

    Excel VBA 入门笔记,看了你也可以轻松入门 VBA! Excel VBA 是 Excel 中的一种编程语言,可以帮助用户实现自动化操作、数据分析和报表生成等功能。通过学习 Excel VBA,可以提高工作效率和数据处理能力。 在 ...

    excel函数学习笔记

    这份"excel函数学习笔记"包含了个人的学习总结,旨在帮助读者掌握这些功能并提升工作效率。 1. **基础函数理解** - **SUM**: 用于求和。例如,`=SUM(A1:A10)` 将计算A1到A10区域内的所有数字之和。 - **AVERAGE**...

    excel vba教程查询笔记

    综上所述,Excel VBA教程查询笔记不仅为学习者提供了一个了解和入门VBA的平台,而且通过深入讲解和实践操作,帮助学习者掌握了在日常工作中解决复杂问题的高级技巧。通过本教程,学习者可以提高个人的办公自动化水平...

    EXCEL VBA教程查询笔记

    本教程查询笔记是专业教师编写的,旨在帮助学习者深入理解和掌握Excel VBA的核心概念和实用技巧。 在Excel VBA中,查询功能是非常重要的一个部分,它使得数据处理和分析变得高效便捷。以下是本教程可能涵盖的一些...

    Excel2007学习笔记

    通过实践和学习《Excel 2007学习笔记.txt》中的内容,你将能够熟练掌握这些技巧,提高工作效率,并在数据分析领域取得显著进步。不断练习和探索,你会发现Excel2007是一个强大而实用的工具,能满足各种业务需求。

    VBA自己学习笔记

    ### VBA学习笔记关键知识点详解 #### 一、工作簿管理与操作 VBA(Visual Basic for Applications)是Microsoft Office套件中的一种编程语言,特别适用于自动化Excel、Word等应用程序的任务。以下是从“VBA自己学习...

    VBA学习笔记本(二)——两个表格数据匹配_DEMO

    VBA学习笔记本(二)——两个表格数据匹配_DEMO 将excel中两个工作表中,数据进行一键同步的通用方法

    ExcelVBA.rar_Excel VBA_excel access_excel+vba+access_vba access_

    文件列表中只有一份“ExcelVBA.doc”,这可能是一个详细的教程文档,包含了上述所有知识点的详细说明,也可能包括练习和解答,以帮助学习者更好地掌握Excel VBA与Access的整合技巧。 总之,这份资料对于那些希望...

    VBA学习笔记02Excel之VBA编程常用语句300句.doc

    ### VBA学习笔记02Excel之VBA编程常用语句解析 #### 一、定制模块行为 1. **Option Explicit**: - **用途**:强制要求在使用任何变量之前必须先声明它。 - **解释**:此指令用于确保在模块中使用的每个变量都已...

    vba.rar_Excel VBA_VBA 写入excel_excel_vba excel

    2. **Excel对象模型**:VBA提供了一个强大的对象模型来操作Excel,包括Workbook、Worksheet、Range、Column、Row等对象。 3. **读取和写入数据**:使用`Range.Value`属性可以读取或设置单元格或单元格区域的值。...

    Excel_VBA与数据库(Access)整合笔记.rar

    通过学习和实践这些知识点,你可以利用Excel VBA和Access数据库的强大功能,实现高效的数据管理和自动化处理。这本“Excel VBA与数据库(Access)整合笔记”文档会深入探讨这些主题,帮助你提升在数据处理领域的技能。

    Excel VBA与数据库(Access)整合笔记

    本笔记将详细阐述如何使用VBA在Excel中创建并操作Access数据库,涉及的知识点涵盖了DAO(数据访问对象)、ADOX(ActiveX数据对象扩展)、数据库的创建与管理等方面。 首先,我们来了解DAO,它是一种面向对象的编程...

    Excel_VBA与数据库(Access)整合笔记

    ### Excel_VBA与数据库(Access)整合笔记精要解析 #### 一、创建数据库和数据表的方法 在《Excel_VBA与数据库(Access)整合笔记》中,作者加肥猫详细介绍了通过多种技术手段实现Excel与Access数据库整合的过程。本文...

    Excel VBA编写代码操控 OneNote

    在Excel VBA编程中,有时候我们需要处理一些自动化任务,例如从网页或文档中提取文本,尤其是在面对包含大量图像数据的情况。在这种场景下,如果图像中含有文字,传统的文本处理方法可能无法奏效。针对这种情况,...

Global site tag (gtag.js) - Google Analytics