VBA中有四个最基本的概念:对象、属性、方法与事件。
工作簿、工作表、单元格、批注、透视表、自选图形、名称等都是对象,VBA正是用于处理这些对象的语言。
excel vba对象有很多,每个对象又有自己的属性和方法。
Excel的操作几乎都是围绕工作簿、工作表、单元格展开的,这些就是Excel操作的核心对象,这些也是VBA的核心对象。
对于Excel来说,最外层的vba对象就是Application,代表整个Excel应用程序。
每个Excel文件,都对应一个Workbook;
文件中的每个Sheet工作表,都对应一个Worksheet;
表单中的单元格,对应的是Range对象。
Application对象必然包含一个Workbooks集合,来表示Excel的每个文件;
Workbook对象必然包括一个Worksheets集合,来表示它包含的所有工作表;
Worksheet对象又必然包含Range或者Cells对象,来标识它包含的单元格;
常见的对象和含义
Application对象:表示整个excel应用程序
Window对象:表示窗口
Worksheet对象:表格一个工作表
Sheets对象:指定活动工作薄中所有工作表的集合
Shaperange对象:表示形状区域,是文档中的一组形状
pivotTable对象:表示工作表中的数据透视表
workbook对象:表示一个excel工作薄。
Range对象:表示某一单元格、某一行、某一列、某一选定区域等等。
Name对象:表示单元格区域的定义名。
Chart对象:表示工作薄中的图表
Filedialog对象:提供文件对话框。
Commandbarpopup对象:表示命令栏上的一个弹出式控件
Commandbar对象:表示命令栏。
Range对象便于把单元格区域作为一个整体来引用或操作,
Cells对象则方便于对每一个单元格分别进行操作。
Range("B2:D4")等效于Range(Cells(2, 2), Cells(4, 4))
================================================
Dim 变量名 As Worksheet
Set 变量名 = Worksheets("表名")
Set sht_slea = Worksheets(2) 拖动表改变顺序后将有问题
Set sht_slea = Application.ThisWorkbook.Worksheets("SLEA") 当前工作表是激活状态,父对象可以省略
Dim rng As Range
Set sht_slea = Worksheets("SLEA")
Set rng = sht_slea.Range("D2:D5")
Set rng = sht_slea.Range("D2:D5, B2:B5")
rng.Interior.ColorIndex = 16
For Each Item In rng
Debug.Print Item
Next Item
Set sht_slea = Worksheets("SLEA")
Debug.Print sht_slea.Cells(1, 2) 行号,列号
For r = 1 To 5
For c = 1 To 4
Debug.Print sht_slea.Cells(r, c)
Next
Next