美文网首页
简明Excel VBA(八)Excel 相关常用操作

简明Excel VBA(八)Excel 相关常用操作

作者: Bluetata | 来源:发表于2018-12-08 21:49 被阅读0次

    简明Excel VBA

    本文集同步于GitHub仓库:# Youchien/concise-excel-vba

    5.1 Excel 基础操作

    1. Range相关
      Range 属性的一些 A1 样式引用
    Range("A1")             ' 单元格 A1
    Range("A1:B5")          ' 从单元格 A1 到单元格 B5 的区域
    Range("C5:D9,G9:H16")   ' 多块选定区域
    Range("A:A")            ' A 列
    Range("1:1")            ' 第一行
    Range("A:C")            ' 从 A 列到 C 列的区域
    Range("1:5")            ' 从第一行到第五行的区域
    Range("1:1, 3:3, 8:8")  ' 第 1、3 和 8 行
    Range("A:A, C:C, F:F")  ' A 、C 和 F 列
    
    1. 行列相关
      行和列的引用
    Rows(1)         ' 第一行
    Rows            ' 工作表上所有的行
    Columns(1)      ' 第一列
    Columns("A")    ' 第一列
    Columns         ' 工作表上所有的列
    Union(Rows(1), Rows(3), Rows(5))  ' 引用第1, 3, 5行
    
    1. 循环Selction区域的每一个单元格Cell
    For Each rngDataCell In RngDataSelection
        If Not rngDataCell.HasFormula And Not (Trim(rngDataCell.Value)  = "") Then
            ...
        End If
    Next rngDataCell
    
    1. 选择当前工作表中的单元格
    ActiveSheet.Cells(5, 4).Select
    或:ActiveSheet.Range("D5").Select
    
    1. 选择同一工作簿中其它工作表上的单元格
    Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
    ' 也可以先激活该工作表,然后再选择:
    Sheets("Sheet2").Activate
    ActiveSheet.Cells(6, 5).Select
    
    1. 选择与当前单元格相关的单元格/偏离当前单元格(Offset)</br>
      语法:Offset(D, R) 以当前为基础原点,向下D,且向右D移动,如果负数即为向反方向移动
      即向上和向左移动。</br>
      例如,要选择距当前单元格下面5行左侧4列的单元格
    ActiveCell.Offset(5, -4).Select
    
    1. 选择一个指定的区域并扩展区域的大小
    ' 要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:
    Range("Database").Select
    Selection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count).Select
    
    1. 选择一个指定的区域,再偏离,然后扩展区域的大小
    ' 选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:
    Range("Database").Select
    Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 1).Select
    
    1. 同时选择两个或多个指定区域</br>
      注意:所选区域必须在同一工作表(sheet)中。
    Set rngUnionSelection = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
    
    1. 选择两个或多个指定区域的交叉区域
      注意:所选区域必须在同一工作表(sheet)中。
    ' 要选择名为“Test1”和“Test2”的两个区域的交叉区域
    Application.Intersect(Range("Test1"), Range("Test2")).Select
    
    1. 利用End函数的相关操作

    End(xldown):从被选中的单元格向下寻找,如果被选中单元格为空,则一直向下走到
    第一个非空单元格;如果被选中单元格为非空,则向下走到最后一个非空单元格。</br>
    End函数的4个方向参数:xlUp, xlDown, xlToLeft, xlToRight。

    ' 选择连续数据列中的最后一个单元格
    ActiveSheet.Range("a1").End(xlDown).Select
    ' 选择连续数据列底部的空单元格
    ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select
    ' 获取连续数据最后一行的行号
    Selection.end(xldown).Row
    ' 想选择连续数据最后面的空白行
    Rows(Selection.End(xldown).Row + 1).Select
    ' 选择某列中连续数据单元格区域
    ActiveSheet.Range("A1", ActiveSheet.Range("a1").End(xlDown)).Select
    ActiveSheet.Range("A1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select
    ' 选择某列中非连续数据单元格区域
    ActiveSheet.Range("A1", ActiveSheet.Range("a65536").End(xlUp)).Select
    ActiveSheet.Range("A1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select
    

    补充: 对于上述代码中非连续数据,也可以利用UsedRange.Rows.Count获取所有数据的条/行数。

    Dim lngCountData As Long
    lngCountData = ActiveSheet.UsedRange.Rows.Count

    相关文章

      网友评论

          本文标题:简明Excel VBA(八)Excel 相关常用操作

          本文链接:https://www.haomeiwen.com/subject/irychqtx.html