文档库 最新最全的文档下载
当前位置:文档库 › VBA从零开始第八课

VBA从零开始第八课

VBA从零开始第八课
VBA从零开始第八课

使用VBA操作单元格(二)

End()

三、单元格的常见操作xlUp

1、插入单元格xlToLeft xlToRight

Range.Insert( [Shift:=移动方向],复制的起点 )xlDown

名 称值说 明

xlShiftDown-4121向下移动单元格。

xlShiftToRight-4161向右移动单元格。

注意:

如果省略本参数,将依据该区域的形状决定移动方向

当在当前单元格/区域插入单元格/区域后,插入的单元格/区域变为活动单元格/区域

1、在A2:B3插入单元格,原单元格向下移动:

Sheets(1).Range("A2:B3").insert shift:=xlShiftDown

2、在当前单元格上方插入一行:

irow = Selection.Row

Sheets(1).Rows(irow).insert

或者使用如下语句:

ActiveCell.EntireRow.insert

3、在当前单元格的左边插入一列:

ActiveCell.EntireColumn.insert

2、删除单元格

Range.Delete( [Shift:=移动方向] )

Shift指定如何移动单元格来进行填充。

xlShiftToLeft:右侧单元格向左移动

xlShiftUp:下方单元格向上移动

1、删除B2:C3单元格,并使下方单元格上移

Range("B2:C3").Delete xlShiftUp

2、删除指定行:

Rows("2:3").delete

Columns(5).delete

3、删除当前行

ActiveCell.EntireRow.delete

3、剪切单元格

Range.Cut( [Destination:=目标区域] )

将对象剪切到剪贴板,或者将其粘贴到指定的目的地

1、将A2单元格剪切到E1单元格

Range("A2").Cut Range("E1")

2、将A3:B5区域剪切到B11开始的区域

Range("A3:B5").Cut

Range("B11").Select

ActiveSheet.Paste

请注意Copy和Cut的区别(图解):

Copy后,可以pasteSpecial

Cut后,只可以Paste

4、清除内容

Range.ClearContents方法

Range.ClearFormats 方法 xlNone

1、如下先清除格式,再清除内容

Range("A2:C5").ClearFormats

Range("A2:C5").ClearContents

5、合并单元格

Range.Merge( 是否按行合并 ) 方法

1、合并A1:A5区域

Range("F1:G5").Merge '合并单元格

2、只合并A1:B5的行区域

Range("F1:G5").Merge True '跨越合并

取消合并:

Range.UnMerge 方法

请注意:

“合并后居中”与“合并单元格”均使用Merge方法

不同的是,一个设置了Range对象的HorizontalAlignment 属性,一个没有

6、自动调整行高/列宽

Range.AutoFit

更改区域中的列宽或行高以达到最佳匹配

1、自动调整第一行的行高到合适高度

Range("A1").EntireRow.AutoFit

7、排序

Range.Sort( [Key1:=排序字段1 , Order1:=次序1 , Key2:=排序字段2 , Type , Order2, Key3, Order3, Hea OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, Data) Key:指定排序的关键字

Order:指定排序顺序的 XlSortOrder 的常量之一。

xlAscending:升序,默认值

xlDescending:降序

Header:指定是否有表头

xlNo:没有表头,默认(2)

xlYes:有表头(1)

xlGuess:有Excel确定是否含有表头(0)

1、如下进行单条件和多条件排序

Range("A3").Sort [c1], Header:=xlGuess

Range("A5").CurrentRegion.Sort [c1], Header:=xlYes

Range("A1").CurrentRegion.Sort key1:=[a1], key2:=[b1], _

key3:=[c1], Order3:=xlDescending, Header:=xlYes

8、自动筛选

Range.AutoFilter( [Field:=偏移量 , Criteria1:=条件, Operator, Criteria2, VisibleDropDown ] )如果忽略全部参数,此方法仅在指定区域切换自动筛选下拉箭头的显示。

Field:作为筛选基准字段的偏移量,以最左侧为第一个字段

Criteria1:筛选条件,一个字符串;例如“101”。使用“=”可以查找空字段,

或者使用“<>”查找非空字段。如果省略,则搜索条件为All。

如果将Operator设置为xlTop10Items,则该参数指定数据项的个数。

Operator:指定筛选类型或两个筛选条件的关系的常量之一。

Criteria2:第二个筛选条件。与Criteria1和Operator一起组合成复合筛选条件

1、本示例从工作表 Sheet1 上的 A1 单元格开始筛选出一个清单,该清单中只显示字段2中的特定内容

Worksheets("Sheet1").Range("A1").AutoFilter 2, ">8" '筛选出大于8的内容

Worksheets("Sheet1").Range("A1").AutoFilter 2, "9" '筛选出=9的内容

Range("A1").AutoFilter 2, "9", xlOr, "7" '筛选出等于7或者9的内容

2、如果想对不同的字段筛选,可以多次调用AutoFilter

Range("A1").AutoFilter 1, "7"

Range("A1").AutoFilter 2, "<10"

Range("A1").AutoFilter 3, "9"

注意:使用AutoFilter进行筛选,应先判断是否已经在筛选状态,如果本来已经在筛选状态,

使用该方法,会取消筛选。判断筛选状态使用:

Worksheet.AutoFilterMode 属性

可读写。如果当前在工作表上显示有“自动筛选”下拉箭头,则该值为 True,也可通过此属性进行设

本属性与FilterMode属性相互独立

2、在程序运行前取消自动筛选:

Range("A2").Select

If ActiveSheet.AutoFilterMode = True Then

Selection.Autofilter

End If

或者可以直接设置:

ActiveSheet.AutoFilterMode = False

注意:可以将该属性设置为False以删除箭头,但不能将其设置为True来试图打开自动筛选。

der2, Key3, Order3, Header:=第一行是否包含标题 , DataOption3 ] )

bleDropDown ] )

示字段2中的特定内容:筛选出大于8的内容

选出=9的内容

来已经在筛选状态,

ue,也可通过此属性进行设置试图打开自动筛选。

相关文档