Range单元格对象常用方法(一)

2019-10-13 15:43:13 浏览数 (1)

大家伙,前面介绍单元格对象的常用属性,下面开始介绍单元格对象的常用方法。

今天介绍的单元格对象方法在平时使用excel也是常规的操作,如单元格的复制、剪切、删除、清除内容等。只是在VBA编程中是通过代码的形式来运行。

主要结合实例来具体说明。

复 制 Copy 方 法

单元格对象的复制方法的格式为:源单元格区域.copy 目标单元格区域(最左上单元格即可)

下面简单实例演示,将sheet1中的a1:b2单元格复制到sheet2表同样位置。

Worksheets(1).Range("a1:b2").Copy Worksheets(2).Range("a1")代码即按使用格式,从sheet1单元格中将a1:b2单元格复制到sheet2单元格a1位置。(这里目的区域只写最左上角的单元格即可。)

如果还对之前对象方法篇概述有印象的话,对象的方法后通常跟参数的,而这里copy方法后直接跟目标单元格位置。

这里其实是省略了destination参数。所以原语句完整的形式其实是Worksheets(1).Range("a1:b2").Copy Destination:=Worksheets(2).Range("a1")。介绍这一点是说明对象方法的统一性,这里copy的参数是省略的。

剪 切 Cut 方 法

单元格cut方法,与复制方法格式用法基本一致。也和平时用的剪切一致。

单元格对象的剪切方法的格式为:源单元格区域.cut 目标单元格区域(最左上单元格即可)

同样cut方法代码也可以省略destination参数。目标单元格区域只写最左上的单元格即可。

选 择 性 清 除 Clear 方法

在一个单元格中,除了可见的内容外,可能还有格式和批注等。可以有选择的使用清除clear系列方法。主要分以下几种。

单元格对象.clearcomments

代表清除单元格批注

单元格对象.clearcontents

代表清除单元格内容

单元格对象.clearformats

代表清除单元格格式

单元格对象.clear

代表清除单元格所有包括批注、内容、注释、格式等。

下面以四个同样的单元格演示如下:

删 除 Delete 方 法

删除delete方法也是使用excel的常用操作,在excle中手工删除时,系统会给如下图的提示:

在使用VBA代码删除时,就需要在代码中通过参数指定。

单元格对象.Delete shift:=xlToLeft

代表右侧单元格左移

单元格对象.Delete shift:=xlup

代表下方单元格上移

单元格对象.Entirerow.Delete

代表删除整行

单元格对象.Entirecolumn.Delete

代表删除整列

单元格对象.Delete

不加参数默认为下方单元格上移

单元格整行和整列删除前面的介绍单元格常用属性(三)时有提到过,不过是标注颜色。由于删除方法与平时操作都类似,下面只演示整行和整列删除。

代码删除A2单元格所在的第2行,删除了B2单元格所在的B列。

在具体实例中使用删除方法时,一定注意删除整行时要从由下向上删除。(从上向下产出容易产生错误)。下面通过举例来具体说明,下面的数据如果A列有空值即删除整行。

具体代码如下:

Sub 删除空值()

Dim i, j As Integer

j = Range("a1048576").End(xlUp).Row

For i = j To 1 Step -1

If Range("a" & i) = "" Then

Range("a" & i).EntireRow.Delete

End If

Next

End Sub

首先通过单元格end属性获得最后一行的行号,然后循环从最一行向上进行IF判断,当单元格为空值时,删除整行循环结束。

那么为什么不能从上往下进行判断删除呢?下面就将循环改成从A1至最后。来分析演示下:

改成从上向下单元格循环后,执行代码结果有一个空单元格没有删除掉,通过代码分析下,当i=4时,A4单元格为空符合条件,这时第4行删除。(这时的结果是原本的第5行变成了第4行,为空值)。而此时代码已经进入下一个循环i=5,判断A5单元格是否为空值。(新的A4单元格为空值但没有被判定。)代码的错误就产生了。


本节主要介绍了单元格的常见方法,包括复制、剪切、清除和删除等。需要特别注意的一点是删除方法使用时,循环需要从下至上,避免错误的产生,有问题可以给我留言,祝大家学习快乐。


0 人点赞