导语:
在VBA中主要通过对EXCEL表格对象的值以及属性进行修改,来达到我们想要的数据处理效果,今天着重介绍一下在日常工作中常用的几个EXCEl对象。熟练掌握这几个对象后,应对一些复杂的、庞大的数据处理工作时绰绰有余了。 常用的对象有这么几个:
Workbooks对象,简单的说,我们打开一个.xls文件,就是一个Workbooks对象。主要又这几个用法: Workbooks.Open FileName:="D:今日头条80502Excel演示.xls" Workbooks.Open "D:今日头条80502Excel演示.xls"
用法:Workbooks(1).Close SaveChanges:=False 关闭工作簿,并且不保存,改为True则是保存并关闭。
下面是打开文件,然后修改文件,并保存。 Sub 打开修改文件并保存() Path = "D:今日头条Excel VBA 培训A计划.xls" Workbooks.Open FileName:=Path Sheets(1).Activate Cells(1, 1) = "今日头条" Cells(1, 1).Font.Name = "宋体" ActiveWorkbook.Save ActiveWorkbook.Close End Sub
小结,与Workbook类似的两个对象还有ThisWorkbook和ActiveWorkbook,这两个用法基本和Workbooks类似。大家经常使用就会明白了。Workbooks.Name:返回 工作簿文件的名称 Workbooks.FullName:返回 工作簿文件的文件路径+名称 Workbooks.Path:返回 工作簿文件的文件路径
Worksheets对象,这个更好理解,每一个文件中的Sheet工作表。Worksheets引用的方式有两种,a. 根据索引号(从1开始) b.根据工作表名称 Worksheets(1) 和Worksheets("Sheet1") 是等效的 (默认没有改工作表名字而且没有移动工作表顺序的情况下)。 用法:Worksheets.Add([Before], [After], [Count], [Type])
Worksheets.Add before:=Worksheets(1), Count:=2, Type:=xlWorksheet ‘意思是在第1个表前加入两个工作表,同样的Before和After不能同时使用。
用法:Worksheets.Move([Before], [After])
Worksheets("工作表1").Move before:=Worksheets("工作表2"):将“工作表1”移动到”工作表2之前“
用法Worksheets("工作表").Delete
Worksheets("Sheet1").Delete :删除"Sheet1"表。
Application.DisplayAlerts = False '关闭提醒,删除之前需要加上这句,不如会弹出确认删除提示。
WorkSheet(1).Name = "名称" WorkSheet(”工作表1“).Tab.ColorIndex =colorId
小结:用Sheets代替WorkSheets会有相同的效果。
比如:激活工作表 Sheets(1).Activate Sheets("工作表 3").Activate
Range对象:选区,右键选择表格中的区域就是选区。在实际应用中,一般都是用Cells对象代替。主要用法: Range("1:1").Interior.ColorIndex = 3 '选中第一行 Range("A:A").Interior.ColorIndex = 4 '选中第一列 Range("B2").Interior.ColorIndex = 5 '选中B2单元格 Range("C3:E4").Interior.ColorIndex = 6 '选中两个单元格之前的区域 Range("C5:D6", "D7:F8").Interior.ColorIndex = 7 '选中两选区的之间区域
通过不同的参数选定不同的区域,然后对选区内的属性赋值修改。比如设置背景颜色,边框,字体大小等等。 Range("C3:E4").Interior.ColorIndex = 6 '选中两个单元格之前的区域 也可以这样写: Range(Cells(3,3),Cells(4,5)).Interior.ColorIndex = 6 '选中两个单元格之前的区域
小结:相比于Cells对象,Range选择的区域更丰富多样一些,但缺少灵活性。Cells对象,单元格,表格中的每一个单元格。这个重点掌握,学会这个对象应用之后,才算是VBA入门。类似的还有Rows对象,Columns对象,列。主要用法:
Cells(行号,列号):B3单元格在第3行第二列,表示为Cells(3,2), Rows(行号):第二行,表示为Rows(2), Columns(列号):C列,右边数第3列,表示为Columns(3)。 示例: Cells(1, 2).Interior.ColorIndex = 3 'B2单元格 Cells(4, 1).Interior.ColorIndex = 6 'A4单元格 Rows(3).Interior.ColorIndex = 4 '第3行 Columns(3).Interior.ColorIndex = 5 '第3列
相比于Range,Cells对象灵活更强,主要原因是可以配合循环或判断语句调整所需要修改的单元格。 比如下面的九九乘法表: 这几个对象是在实际应用的常用的,学会Workbook之后,可以对多个文件进行数据、格式进行修改。学会Worksheet可以同时对多个Sheet表进行修改。Range对象、Cells对象、Rows对象、Columns对象则是对要修改的位置做更精确地定位。有时还需要结合循环语句和判断语句来精确定位到我们要修改的位置。做个类比,你要给远在浙江省苏州市杨武县小河镇的铭铭家发快递。快递分拣的时候肯定分到江苏省(Workbook文件操作对象),然后是苏州市(Worksheet),然后再到镇(Range、Rows、Columns、Cells),有时还需要一些判断条件来判断是否是铭铭家。 等定位要精确位置之后,我们才开始修改我们要修改的数据。我们可以通过对象的这几个属性进行修改。 Font 字体属性,字体属性又有字体大小、颜色、类型、加粗等属性; Interior属性(背景颜色属性); Borders属性(边框); HorizontalAlignment水平对齐属性; VerticalAlignment垂直对齐属性。
对象属性 | 属性说明 | Cells Font属性 | 字体 | 字体大小 | cells.font.size; | 字体颜色 | cells.font.color; | 字体类型 | cells.font.name; | 字体加粗 | cells.font.fontstyle; | Cells Interior属性 | 背景颜色 | 背景颜色值
| cells.Interior.Color | 背景颜色索引ID | cells.Interior.ColorIndex | Cells Borders属性 | 边框 | 线宽 | Cells.Borders.Weight | 线型 | Cells.Borders.LineStyle | 颜色 | Cells.Borders.Color | Cells HorizontalAlignment属性 | 水平对齐 | Cells VerticalAlignment属性 | 垂直对齐 |
比如 :
Cells(1,2).Font.name ="黑体" ‘设置B2单元格字体为黑体。 Range("A1","A10").Font.size=16 '设置选区内字体大小为16。 Rows(1).Interior.ColorIndex = 6 '设置第一行背景颜色大小为黄色。 Columns(1).HorizontalAlignment =xlVAlignCenter ’ '设置第一列垂直居中。
这些属性不知道怎么写的话可以通过宏录制,将所需的代码录制出来。 这是录制出来的代码。 Sub Macro1() Range("A1:I1").Select '将Select这句去掉, 下面的Selection 直接换成 Cells(1,3) 或者Rows(1)等对象就可以了。 Selection.Font.Name = "华文中宋" ’字体 Selection.Font.Size = 22 ‘字体大小 Selection.Font.Bold = True’ 字体加粗 With Selection.Interior ‘背景颜色 .Pattern = xlPatternSolid .Color = 65535 .TintAndShade = 0 End With End Sub
修改后的代码,用同样的方式也可以录制边框和对齐属性。 Sub Macro1() ' Rows(1).Font.Name = "华文中宋" Rows(1).Font.Size = 22 Rows(1).Font.Bold = True With Rows(1).Interior .Pattern = xlPatternSolid .Color = 65535 .TintAndShade = 0 End With End Sub
总结:学习VBA最主要的是要多加练习,在工作中遇到实际问题,至少要知道VBA能够解决这样的问题,然后最快的学习方法就是不断的提出问题,然后百度,一点点的代码拼出来。这个过程就是知识内化的过程。一旦熟悉了这个过程,你会发现不管学什么东西都比较有效率的。
编者的话:这篇文章自己捣鼓了3天,路漫漫其修远兮!用到的代码会放到网盘里,童鞋可以自己鼓捣,加关注,私信回复“天蓝蓝”,即可得到。
打开文件后,在开发工具里面,点击VB编辑器即可打开(office自带VBA,WPS 需要安装VBA for WPS)
|