分享

VBA快速遍历选区的几种方法

 满泉ca85upjdlw 2023-12-01 发布于内蒙古

选区遍历在VBA数据处理的时候,使用非常普遍,需要好好掌握。本篇介绍几种常用的遍历选区的方式。

本篇基于以下数据讲解。红框内为选区。

VBA快速遍历选区的几种方法

名词介绍:

术语

类型

含义

Selection

Range

当前选中的区域

Rows

Range

当前选区的所有行

Columns

Range

当前选区的所有列

Count

数字

总数。Rows.Count:总行数,Columns.Count:总列数

Row

数字

当前行

Column

数字

当前列

Address

字符串

当前单元格地址,比如:$A$1

Value

单元格值。.Value获取值;.Value=xx给单元格设置值

Cells

Range

单元格。通过指定行和列,指定特定单元格。Cells(1,1)表示选区内第一行第一列的单元格

Debug.Print

打印到调试窗口

按照选区单元格,从左到右,从上到下,依次读取单元格

这种方式无脑遍历所有选区内单元格,从左到右,从上到下。

'' 按照选区单元格,从左到右,从上到下,依次读取单元格'Sub IterateRanges1() Dim rng As Range For Each rng In Selection Debug.Print rng.Address & ':' & rng.Value ' 单元格地址:单元格值 NextEnd Sub

依次读取每一行,然后读取该行每一个单元格

这种方式需要用户显式指定各列,然后针对不同列做相应数据处理。

'' 依次读取每一行,然后读取该行每一个单元格'Sub IterateRanges2()    Dim rngRow As Range, rngCol1 As Range, rngCol2 As Range, rngCol3 As Range        For Each rngRow In Selection.Rows        Set rngCol1 = rngRow.Cells(1, 1) ' 当前行第一列        Set rngCol2 = rngRow.Cells(1, 2) ' 当前行第二列        Set rngCol3 = rngRow.Cells(1, 3) ' 当前行第三列        Debug.Print rngCol1.Address & ':' & rngCol1.Value & ',' _                     ; rngCol2.Address & ':' & rngCol2.Value & ',' _                     ; rngCol3.Address & ':' & rngCol3.Value    NextEnd Sub

分别用行号和列号遍历

这种方式需要用户显式指定行和列,然后针对不同列做相应数据处理。

'' 分别用行号和列号遍历'Sub IterateRanges3() Dim rng As Range startRow = Selection.Row startCol = Selection.Column totalRows = Selection.Rows.Count totalCols = Selection.Columns.Count For iRow = startRow To startRow + totalRows - 1 ' 遍历行 For iCol = startCol To startCol + totalCols - 1 ' 遍历列 Set rng = Cells(iRow, iCol) Debug.Print rng.Address & ':' & rng.Value Next Next End Sub

以上是几种常用的遍历单元格的方式,以供大家参考。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多