• VBA笔记


     1、VBA数据类型

    数据类型 存储空间大小 范围
    Byte 1个字节 0-255
    Boolean 2个字节 true或false
    Integer 2个字节 -32768-32767
    Long 4个字节
    Single 4个字节
    Double 8个字节
    Currency 8个字节
    Decimal 14个字节
    Date 8个字符
    Object 4个字节 任何Object引用
    String(变长) 10字节加字符串长度 0到大约20亿
    String(定长) 字符串长度 1到大约65400
    Variant(数字) 16个字节 任何数字值,最大可达Double的范围
    Variant(字符) 22个字节加字符串长度 与变长String有相同的范围
    用户自定义 所有元素所需数目

    如果不指定数据类型,VBA自动将变量指定为变体型Variant.

      1.1 数据类型的转换

        CBool  Boolean  任何有效的字符串或数值表达式

        CByte  Byte    0-255

        CCur   Currency    -

        CDate  Date       -

        CDbl   Double    -

        CDec   Decimal  小数的数值

        CInt   Integer    -

        CLng   Long     -

        CSng   Single     -

        CStr   String      -

        CVar   Variant     -

       1.2 常量的声明

    [Public | Private] Const constname [As type] = expression

    Public:用于在模块级别中声明在所有模块中对所有过程都可以使用的常量,在过程中声明常量不能使用Public

    Private:用于在模块级别中声明只能在包含该声明的模块中使用的常数,不能在过程中使用。

    2、过程

    过程主要分为以下三类:Sub过程、Function过程和Property过程。

    过程的命名规则注意事项:过程名可以和本过程的私有变量同名,但却不能和公有变量同名。

    Sub过程语法:

    Private | Public | Friend | [Static] Sub name [(arglist)]
        [statements]
        [Exit Sub]
        [statements]
    End Sub

    Public:表示所有模块的所有其他过程都可访问这个Sub过程。如果在包含Option Private的模块中使用,则这个过程在该工作外是不可使用的。

    Private:只有在包含其声明的模块中的其他过程可以访问该Sub过程。

    Friend:只能在类模块中使用,表示该Sub过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。

    Static:表示在调用时保留Sub过程的局部变量的值。Static属性对在Sub外声明的变量不会产生影响。即使过程中也使用了这些变量。

    • 模块级过程:只能在当前模块中调用的过程。
    • 工程级过程:在当前工程中任何地方都可以随意调用的过程

    按值传递和按址传递的参数区别:

    Byval:按值传递,该情况下过程访问的是变量的副本,过程不会改变变量本身的值。

    Byref:按地址传递,过程访问的是变量本身,过程可以改变变量的真正值。默认情况下,都按值传递参数。

    Me关键字的的注意事项:

    Me关键字不能出现在标准模块中,因标准模块不能代表对象。若从类模块中复制代码,则必须用指定对象或窗体名来取代Me,以保持原来的引用。通常只能在事件过程中使用,包括工作表代码窗口,工作簿代码窗口和类模块。

    Me关键字不能出现在Set赋值号的左边,正确地使用ME赋值时是使用Let或者忽略。

    3、Exit Sub和End的区别

    1、是否释放公有变量

    2、是否终止所有程序

    4、Workbooks/Workbook/ThisWorkbook/ActiveWorkbook

    • Workbook对象代表整个Excel工作簿,即Excel文件。
    • Workbooks集合代表所有已经打开的工作簿,加载宏除外。
    • ThisWorkbook:代码所在的Workbook对象。
    • ActiveWorkbook:Excel活动窗口中的Workbook对象。

    5、Worksheets/Worksheet/Sheets/Activesheet

    • Worksheet对象代表一张工作表。
    • Worksheets集合包括工作簿中所有的Worksheet对象。
    • Sheets集合除了包含工作簿中的所有的Worksheet对象外,还包括工作簿中所有的图表工作表(Chart)对象和宏表对象。
    • Activesheet:用于引用处于活动状态的工作表。

    6、EntireRow/EntireColumn属性

    返回一个Range 对象,该对象代表包含指定区域的整个行/列(或若干行/列)。只读。

    7、Rows属性

    • 对于 Application 对象,返回代表活动工作表所有行的 Range 对象。如果活动文档不是工作表,Rows 属性无效。Range 对象,只读。
    • 对于 Range 对象,返回代表指定区域所有行的 Range 对象。
    • 对于 Worksheet 对象,返回代表指定工作表所有行的 Range 对象。

    在不用对象识别符的情况下使用此属性等价于ActiveSheet.Rows。

    当应用于含多个选定区域的 Range 对象时,该属性只返回该区域中第一个子区域内的行。例如,如果 Range 对象有两个子区域:A1:B2 和 C3:D4,则 Selection.Rows.Count 返回 2 而不是 4。若要在一个可能包含多个选定区域的区域中使用该属性,请测试 Areas.Count 来判断该区域是否包含多个选择区域。如果是,则像第 3 个示例中所示,在该区域中的每个子区域上循环。

    8、Columns属性

    应用于 Application 对象的 Columns 属性。

    返回一个 Range 对象,该对象代表活动工作表中的所有列。如果活动文档不是工作表,则 Columns 属性无效。只读。

    应用于 Range 对象的 Columns 属性。

    返回 Range 对象,该对象代表指定单元格区域中的列。只读。

    应用于 WorkSheet 对象的 Columns 属性。

    返回一个 Range 对象,该对象代表指定工作表上的所有列。只读。

    在不使用对象识别符的情况下使用此属性等价于 ActiveSheet.Columns。

    当对一个多重选定区域的 Range 对象应用属性时,此属性返回的只是所选区域的第一个子区域中的列。例如,如果 Range 对象有两个子区域 A1:B2 和 C3:D4,那么,Selection.Columns.Count 的返回值是 2,而不是 4。若要对一个可能包含多重选定区域的区域使用此属性,请用 Areas.Count 方法测试一下此区域内是否包含多个子区域。如果确实包含多个子区域,可对此区域内的每一子区域进行循环。

    9、Row/Column属性

     返回指定区域中第一个子区域的第一行/列的行/列号。Long 类型,只读。

    10、FileDialog属性

    返回一个FileDialog 对象,该对象代表文件对话框的实例。

    expression.FileDialog(fileDialogType)

    fileDialogType-->MsoFileDialogType 类型,必需。文件对话框的类型。

    MsoFileDialogType 可为以下 MsoFileDialogType 常量之一。
    msoFileDialogFilePicker: 允许用户选择一个文件。
    msoFileDialogFolderPicker: 允许用户选择一个文件夹。
    msoFileDialogOpen: 允许用户打开一个文件。
    msoFileDialogSaveAs: 允许用户保存一个文件。

     11、Application对象

    属性:

    A-->ActiveCell、ActiveChart、ActivePrinter、ActiveProtectedViewWindow、ActiveSheet、ActiveWindow、ActiveWorkbook、AlertBeforeOverwriting、Application、AskToUpdateLinks、AutoCorrect、AutoPercentEntry

    C-->Caption、CellDragAndDrop、ClipboardFormats、Columns、CommandBars、CopyObjectsWithCells、Cursor、CutCopyMode

    D-->DecimalSeparator、Dialogs、DefaultFilePath、DefaultSaveFormat、DeferAsyncQueries、DisplayAlerts、DisplayCommentIndicator、DisplayFormulaAutoComplete、DisplayFullScreen、DisplayFunctionToolTips、DisplayNoteIndicator、DisplayRecentFiles、DisplayScrollBars、DisplayStatusBar

    FileDialog、、、

    OperatingSystem、Version、Visible、

    W-->WarnOnFunctionNameConflict、Watches、Width、Windows、、WindowState、Workbooks、WorksheetFunction、Worksheets、

    方法:

    ActivateMicrosoftApp:激活一个Microsoft应用程序,如果程序正在运行中,此方法激活正在运行中的程序,否则,此方法创建启动一个新的应用程序实例。

    AddCustomList:为自定义自动填充或者自定义排序增加一个自定义序列,如果增加的序列已存在,此方法将不做什么。

    Calculate:计算所有打开的工作簿或者某个工作簿中的指定工作表或者某个工作表中的指定区域。

    CentimetersToPoints:将厘米转换为点度量(1点=0.035cm)

    CheckAbort:

    CheckSpelling:

    ConvertFormula:

    DeleteCustomList:

    DoubleClick:

    Evaluate:

    FindFile:

    GetCustomListContents:

    GetCustomListNum:

    GetOpenFilename:

    GetSaveAsFilename:

    Goto:

    InchesToPoints:将英寸转换为点度量

    InputBox:显示一个对话框用于用户输入,返回输入在对话框中的信息。

    Intersect:返回一个Range对象,它表示两个或多个范围的矩形交集。

    MailLogoff:

    MailLogon:

    OnKey:

    OnRepeat:如果在运行设置此属性的过程之后选择Repeat命令,则设置Repeat项目以及将运行的过程的名称。

    OnTime:在将来指定的时间安排一个程序运行(在一天中特定的时间或者经过一段特定时间后)。

    OnUndo:设置Undo命令的文本以及运行设置此属性的过程后选择“撤消”命令时运行的过程的名称。

    Quit:关闭Microsoft Excel

    Repeat:重复上一次用户接口操作

    Run:运行一个宏或者调用一个函数

    SendKeys:将案件发送到活动的应用程序中

    Undo:取消上一次用户接口操作

    Union:返回两至多个区域的联合

    Volatile:将用户自定义函数标记为易失性函数。一个易失性函数必须被计算无论何时工作表中的任意单元格出现计算时。一个非易失性函数仅当输入变量改变时重新计算。如果在用户自定义函数中不使用计算的工作表单元格,此方法将没有影响。

    Wait:暂停正在运行的宏直到一个指定的时间点,如果到达指定的时间点,返回True。

  • 相关阅读:
    js 进阶笔记
    Move Zeroes
    笔记
    前端笔记
    PAI-AutoLearning 图像分类使用教程
    Redis Key过期通知
    Ubuntu 安装配置 JDK+Tomcat+Nginx
    Linux常用指令总结
    使用Openssl创建证书
    Python 操作Excel
  • 原文地址:https://www.cnblogs.com/yl153/p/6691097.html
Copyright © 2020-2023  润新知