Windows编程语言VBA学习(三)——使用VBA操作Excel

在之前的文章中我们学习了VBA的基本语法,接下来我们就要学习如何使用VBA开发宏命令脚本,如何与Excel进行交互。

我了解的内容仅限于我自己的使用,可能并不系统,还请谅解。

首先我们可能需要操作Sheet页

1.创建Sheet页,此方式可创建指定名称的Sheet页,不需要返回值

Worksheets.Add.Name = "Sheet页名称"

2.获取Sheet页中存在数据的总行数,返回值为Integer

Application.CountA(ActiveSheet.Range("a:a"))

3.获取Sheet页中存在数据的总列数,返回值为Integer

Application.CountA(ActiveSheet.Range("1:1"))

4.获取Sheet页中所有行的数据,返回值用Variant类型变量接收

Rows("从多少行开始: 到多少行结束")

如果希望填写变量的话,按照如下格式填写

Rows(& 开始行变量 ":" & 结束行变量)

此时会有一个小问题,就是获取到的一行的数据,会把这一行所有的单元格都获取到,包括空单元格,但是我们可能用到10列或者100列就可以了,为了提升性能,我们需要获取指定行,指定列的方法

5.获取Sheet页中指定行,指定列范围内的数据,返回值用Variant类型变量接收

Range(Cells(开始列的列数, 开始行的行数), Cells(结束行的行数, 结束列的列数))

此时我们就可以获得需要的指定范围内的数据

6.SpecialCells方法(重点)

这个方法的可用性很强大,它可以筛选出我们需要的数据

Range.SpecialCells(Type, Value)

其中Type可以选择的类型为

XlCellType 名称常量值注释
xlCellTypeAllFormatConditions-4172任意格式单元格
xlCellTypeAllValidation-4174含有验证条件的单元格
xlCellTypeBlanks4空单元格
xlCellTypeComments-4144含有注释的单元格
xlCellTypeConstants2含有常量的单元格
xlCellTypeFormulas-4123含有公式的单元格
xlCellTypeLastCell11已用区域中的最后一个单元格
xlCellTypeSameFormatConditions-4173含有相同格式的单元格
xlCellTypeSameValidation-4175含有相同验证条件的单元格
xlCellTypeVisible12所有可见单元格

当Type参数为 xlCellTypeConstants 或 xlCellTypeFormulas时,Value参数有4种XlSpecialCellsValue 常量可选

XlSpecialCellsValue名称常量值注释
xlErrors16错误值
xlLogical4

逻辑值

xlNumbers1数字
xlTextValues2文本

我今天的使用方式为 想要获取Sheet页内筛选后的全部数据,代码为

Worksheets("Sheet页名称").Range(Cells(开始列的列数, 开始行的行数), Cells(结束行的行数, 结束列的列数)).SpecialCells(12)

但是选择完毕后我发现了一个问题,就是通过此方法筛选的可见行数量不对,我在页面上筛选出了5条数据,但是通过这个方法获取的数据仅获得两条,所以这种方法懂哥可以用,我是不太会用

所以我用来获取可见行的方法为

EntireRow.Hidden = False

当我们获取到整个的数据后循环处理,每一行都进行是否隐藏的判断,如果没有隐藏的话再进行数据处理

整个过程的代码如下

Sub myCode()

    Dim arr As Variant, row As Long, column As Long, countN As Long //变量声明
    n = 1
    Worksheets.Add.Name = "test" //创建新的Sheet页
    With ActiveSheet
    For Each Rng In Worksheets("Sheet1").Range("F:F").Cells //循环Sheet1中F列,每一列都为一个Range对象 如果需要调用一行中多列,则为("A:F")
        If Rng <> "" And Rng.EntireRow.Hidden = False Then 数据处理1 //如果Range对象不为空并且隐藏属性为False 则说明为可见行,然后进行数据处理
        If Rng <> "" And Rng.EntireRow.Hidden = False Then 数据处理2 //同样进行数据处理
    Next
    End With
End Sub

7.Sheet页的写入

Worksheets("写入的Sheet页名称").Cells(第几行, 第几列) = 写入的值

上面的过程就是关于Sheet页的数据获取以及Sheet页的写入

下一篇我们将会介绍如何调试VBA代码↓

Windows编程语言VBA学习(四)——VBA代码调试

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值