美文网首页
简明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