Excel对象之工作表(Worksheet)
当一个工作簿有多个工作表,需要用到不同表中的数据时候,则需要引用工作表。
通过表名引用
Sub test()
Dim sht_slea As Worksheet
Dim sht_result As Worksheet
Dim sht_para As Worksheet
Set sht_slea = Worksheets("Sheet1")
Set sht_result = Worksheets("Sheet2")
Set sht_para = Worksheets("Sheet3")
End Sub
'Dim 变量名 As Worksheet 来定义一个工作表对象
'Set 变量名 = Worksheets('表名')把工作表对象赋值给指定的对象,可以用这个变量来引用或操作对应工作表中的对象和数据
通过表的顺序引用
按照工作表出现在工作簿的顺序,从左至右,依次使用1、2、3来引用。格式同上。
单元格区域 ,Range对象
range对象是worksheet的一个子集,通常通过worksheet_object.Range()方式来引用
单个单元格区域的引用
VBA中可以使用A1、B5等单元格的地址来引用单元格
Sub test()
Dim sht_slea As Worksheet
Dim rng As Range
Set sht_slea = Worksheets("worksheet1")
Set rng = sht_slea.Range("B5")
Debug.Print rng
End Sub
多个连续单元格区域的引用
'多行多列的单元格区域,通常是设置其格式
'通常是单行或者单列的数据进行操作,比如连续输入A1-A5
Sub test()
Dim sht_slea As Worksheet
Dim rng As Range
Set sht_slea = Worksheets("worksheet1")
Set rng = sht_slea.Range("D2:D5")
For Each Item in rng
Debug.Print Item
Next Item
End Sub
多个不连续单元格操作
单元格对象cells
通常通过worksheet_object.Cells()来引用,括号里输入的数字代表行号和列号
'输出A1到D5的内容
Sub test()
Dim sht_slea As Worksheet
Set sht_slea = Worksheets("worksheets1")
For a =1 To 5
For b=1 To 4
Debug.Print sht_slea.Cells(a,b)
Next
Next
End Sub
Range("B1:B4,C1:C4") 代表引用B1:B4和C1:C4这两个区域
Range("B1:B4","C1:C4")代表引用B1:C4整个区域
Range("B1:B4") == Range(Cells(1,1),Cells(4,4))
父对象
range和cells对象是worksheet对象,worksheet对象是workbook,workbook对象是application。
如果VBA的代码涉及的对象都在一个工作表里,那么父对象是可以省略的。