【VBA第2.1讲】对Excel的基本操作

论坛 期权论坛 期权     
日常办公小技巧   2019-6-9 21:27   2711   0
在上一期,我们学习了如何定义变量和给变量赋予合适的数据类型【VBA第1.2讲】认识变量定义和数据类型 其中有一种数据类型叫对象(object),在这里很有必要详细讲一讲对象,我们以后进行编程离不开和这些对象打交道。

一、应用(Application)

Application对象表示对象层次结构的顶层, 并包含应用程序的所有对象、方法和属性。

二、工作簿(Workbooks)

Workshbooks 集合包含工作簿中的所有 Workbook对象。

(1)Workbooks(数字索引)
  1. workbooks(1) '表示第一个打开的工作簿
复制代码
  1. workbooks(2) '表示第二个打开的工作簿
复制代码
  1. ……
复制代码
(2)Workbooks("文件名")
  1. workbooks("code.xlsm") '表示code.xlsm的工作簿
复制代码
  1. workbooks("target.xlsx") '表示target.xlsx的工作簿
复制代码
  1. ……
复制代码
(3)当前活动工作簿(ActiveWorkbook)

什么是当前活动的工作簿呢?就是当前你正在编辑的工作簿。
  1. ActiveWorkbook
复制代码
(4)切换活动工作簿

如果当前活动的工作簿是code.xlsm,我想要切换到工作簿target.xlsx,则可以用activate方法。
  1. Workbooks(2).Activate
复制代码
  1. Workbooks("target.xlsx").Activate
复制代码
三、工作表(Worksheets)

Worksheets 集合包含工作簿中的所有 Worksheet 对象。

Worksheets与Workbooks的方法都是一样的,同样道理:
(1)Worksheets(数字索引)
  1. worksheets(1) '表示第一个打开的工作表
复制代码
  1. worksheets(2) '表示第二个打开的工作表
复制代码
  1. ……
复制代码
(2)Workbooks("工作表名字")
  1. worksheets("sheet1") '表示sheet1的工作表
复制代码
  1. worksheets("sheet2") '表示sheet2的工作表
复制代码
  1. ……
复制代码
(3)当前活动工作表(ActiveWorksheet)

什么是当前活动的工作表呢?就是当前你正在编辑的工作表。
  1. ActiveWorksheet
复制代码
(4)切换活动工作表

如果当前活动的工作表是sheet1,我想要切换到工作表sheet2,则可以用activate方法。
  1. Worksheets(2).Activate
复制代码
  1. Worksheets("sheet2").Activate
复制代码
四、区域(Range)

表示一个单元格、一行、一列、一个包含单个或若干连续单元格区域的选定单元格范围,或者一个三维区域。
  1. Range("A1").Select '选中A1单元格
复制代码
  1. Range("A:A").Select '选中A列
复制代码
  1. Range("1:1").Select '选中第一行
复制代码
  1. Range("A1:D10").Select '选中A1到D10这个区域
复制代码
五、单元格(Cells)
Cells它表示指定区域中的单元格。

  1. Worksheets(1).Cells(1, 1).Select '选中第一行第一列单元格
复制代码
  1. Worksheets(1).Cells(2, 2).Select '选中第二行第二列单元格
复制代码
  1. [/code][code]Range("A1:D10").Cells(1,1).Select '选中A1到D10这个区域中的第一行第一个
复制代码
  1. Range("A1:D10").Cells(2,2).Select '选中A1到D10这个区域中的第二行第二个
复制代码
六、行(Rows)
Rows表示指定区域中的行。
  1. Worksheets(1).Rows(1).Select '选中第一行
复制代码
七、列(Columns)
Columns表示指定区域中的行。
  1. Worksheets(1).Columns(1).Select '选中第一列
复制代码
八、打开文件(Open)
Open打开指定的工作簿。
  1. Workbooks.Open "E:\code.xlsm"      '打开code.xlsm文件
复制代码
  1. Workbooks.Open ("d:\target.xlsx")  '这样子也是可以的
复制代码
九、新建文件(Add)
Add新建文件。
  1. Workbooks.Add                      '新建文件
复制代码
十、保存文件(Save)
Save保存当前文件。

  1. Workbooks.Open "E:\code.xlsm"      '打开code.xlsm文件
复制代码
  1. workbooks.Save                     '保存文件
复制代码
十一、另存文件(SaveAs)
SaveAs把当前文件另保存为其他。

  1. Workbooks.Open "E:\code.xlsm"      '打开code.xlsm文件
复制代码
  1. Workbooks.SaveAs "E:\code-2.xlsm"  '另存为code-2.xlsm文件
复制代码
十二、关闭文件(Close)
Close关闭当前文件。
  1. Workbooks.Open "E:\code.xlsm"      '打开code.xlsm文件
复制代码
  1. Workbooks.Close                    '关闭文件
复制代码
上面所讲的比较零散,现在把它们串联起来。

例1:
我这里有一个code.xlsm是作为VBA代码的载体,所以通过运行code.xlsm里面的代码来打开一个c:\test.xlsx文件,保存文件,最后把test.xlsx关闭。
  1. Sub test_1()
复制代码
  1. Workbooks.Open "c:\test.xlsx"
复制代码
  1. Workbooks("test.xlsx").Save
复制代码
  1. Workbooks("test.xlsx").Close
复制代码
  1. End Sub   
复制代码



例2:
打开code.xlsm文件,运行code.xlsm里面的代码来新建一个文件,另存为c:\test-2.xlsx文件,关闭文件。这里要注意一下,sub test_1()和sub test_2()是两个方法,中间有一条分割线,如果想要运行sub test_2(),需要鼠标移到sub test_2()区域,然后点击运行。
  1. Sub test_2()
复制代码
  1. Set NewWorkbook = Workbooks.Add
复制代码
  1. NewWorkbook.Activate
复制代码
  1. ActiveWorkbook.SaveAs Filename:="c:\test-2.xlsx"
复制代码
  1. ActiveWorkbook.Close
复制代码
  1. End Sub
复制代码



例3:按要求选中特定区域。
  1. Sub test_3()
复制代码
  1. Range("A1").Select '选中A1单元格
复制代码
  1. Range("A:A").Select '选中A列
复制代码
  1. Range("1:1").Select '选中第一行
复制代码
  1. Range("A1:D10").Select '选中A1到D10这个区域
复制代码
  1. [/code][code]Worksheets(1).Cells(1, 1).Select '选中第一行第一列单元格
复制代码
  1. Worksheets(1).Cells(2, 2).Select '选中第二行第二列单元格
复制代码
  1. [/code][code]Range("A1:D10").Cells(1, 1).Select '选中A1到D10这个区域中的第一行第一个
复制代码
  1. Range("A1:D10").Cells(2, 2).Select '选中A1到D10这个区域中的第二行第二个
复制代码
  1. [/code][code]Worksheets(1).Rows(1).Select '选中第一行
复制代码
  1. Worksheets(1).Columns(1).Select '选中第一列
复制代码
  1. [/code][code]End Sub
复制代码
运行这些代码,由于运行很快就那么一瞬间,前面的代码运行起来都看不清就过去了,只能看到最后一句代码的结果,如果只想运行某一行,则把不要的代码注释了。



代码注释与反注释

想要领取code.xlsm练习模板,加入【日常办公小技巧交流群】来吧,我都发到群里去了!如果二维码失效了,加小编的微信:ABC10086IAC 添加好友时请备注:日常办公小技巧,小编拉你进入群。



往期VBA教程:
【VBA教程长期更新】0基础也能学会VBA?是的,从小白如何快速蜕变成大神
【VBA第1.1讲】初识VBA,熟悉编程工具
【VBA第1.2讲】认识变量定义和数据类型
【VBA第2.1讲】对Excel的基本操作

其他:
【Excel-190304期】Excel函数高级篇--基础函数的组合
Excel-190309期】快速查找内容,删除无用的行
【Excel-190312期】超级详细的Excel函数基础版--快速查找、截取字符
【Excel-190320期】连接符号&真的很好用,屡试不爽!
【Excel-190328期】Excel利用【分列】快速把文本拆分
【Excel-190409期】vlookup使用绝对引用数据才可靠
【Excel-190420期】利用VBA批量修改文件名
【Excel-190423期】复制一列可以这样子做,你学会了吗?
【Excel-190428期】VBA批处理插入表头
【Excel-190514期】 利用VBA快速合并或拆分多个工作簿、工作表

重磅消息:
小程序换新版了,精心挑选了非常有用的文章,戳下方的链接:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP