【Excel】二、VBA入门指导

一、PERSONAL.XLSB

  1. 如果需要经常在不同的工作薄里使用相同的一些宏功能代码,建议配置一个打开Excel软件后总是会默认打开的PERSONAL.XLSB文件。
    在这里插入图片描述
  2. PERSONAL.XLSB默认不可见,可以通过「视图」里的功能来"取消隐藏"或重新"隐藏"工作薄。
    在这里插入图片描述
  3. xlsb是一种比较节省体积的保存格式:推荐使用xlsb格式保存Excel文件。
  4. Excel使用VBA小程序的方法。

二、VBE相关配置

  1. 在Excel中,按下「Alt+F11」打开的界面就叫VBE(Visual Basic Editor),这里介绍一些VBE的配置及使用方法,提高以后编写代码的效率。
  2. 关闭“自动语法检测”
    在VBA中切换代码行时,默认会进行语法检测。有时未完成该行,鼠标选择其它行的内容进行复制,则会弹出警告窗口,影响编辑效率。可以通过「工具–>选项」设置关闭自动检测:
    在这里插入图片描述
  3. 打开「视图->工具栏–>编辑」,方便批量注释、取消注释代码块。
    在这里插入图片描述
  4. 「工具–>引用」,可以添加很多现有的功能库,如我用过的
名称 内容
Microsoft Scripting Runtime 字典Dictionary类
Microsoft VBScript Regular Expressions 正则表达式
Microsoft XML,v3.0 XML文档分析
  1. vba代码格式化插件: http://www.cnblogs.com/Charltsing/p/SmartIndenter64.html

三、定义变量

  1. 简表
数据类型 类型声明字符
Integer %
Long &
Single !
Double #
String $
  1. 为了代码精短,我会习惯性的使用类型声明字符,但又为了代码可读性,同类型的最后一个变量,会保留as的显式类型定义,如Dim i&, j&, k As Long

  2. 更多示例代码

Sub 变量定义方法示例()
'1 显示定义后再使用
    Const 常量整数1 As Integer = 9
    Const 常量整数2 = 7
    Const 日期 = #1/11/1982#    '定义日期1982111日
    
'2 未定义直接使用
    一个字符串 = "Yang"         '变量可以直接使用
    一个字符串 = 13             '并且可以随时改变数据类型
    
'3 Dim
    'Dim可以定义变量,方法同上
    'Dim还可以定义对象
    Dim 对象1 As Object
    Dim 字典 As Dictionary
    
'4 综合介绍
    'Interge是16位无符号整型,long32位无符号整型
    Dim 定义整数 As Integer
    Dim 整数的另一种定义方法%
    Dim long的特殊定义方法&
    
    'Single是单精度浮点型,double是双精度浮点型
    Dim Single的特殊定义方法!   '32位
    Dim Double的特殊定义方法#   '64位
    
    ' 其他类型
    Dim Currency货币型#
    Dim 布尔值 As Boolean
    
    ' 注意字节型,不是字符型
    Dim 字节型 As Byte          '0~255,在进行ANSI和UTF读取时,string可能会破坏原值
    
    ' 时间类型
    Dim Tdate As Date
    Tdate = #11/15/2005#        '写#2005-11-15#,#November 15,2005#时会自动变为#11/15/2005#
    Tdate = #11/15/2005 1:00:00 PM#
    
    Dim 字符串 As String        '在VBA中,字符和字符串没有区别
    字符串 = "Hello"
    字符串 = "a"
End Sub

四、基本语法结构

  1. 判断,字符串处理
If InStr(s, "★") > 0 Then
    星星数 = Len(s) - Len(Replace(s, "★", ""))
ElseIf InStr(s, "难度:") > 0 Then
    n = Mid(s, InStr(s, "难度:") + 3, 1)
    If CStr(星星数) <> n Then
        p.Select
        p.HighlightColorIndex = wdYellow
        Exit Sub
    End If
End If
  1. For循环
For i = 1 To lenth
    t = toInt(Mid(s, i, 1))
    If t = -1 Then
        toBase10Value = CVErr(xlErrNA)
        Exit Function
    Else
        toBase10Value = toBase10Value * oriBase + t
    End If
Next i
  1. While循环
Do While d <> 0
    r = d Mod dstBase
    toBaseNValue = toChar(r) + toBaseNValue
    d = Int(d / dstBase)    '截去小数向下取整
Loop

你可能感兴趣的:(Excel/VBA)