Excel的三个基本对象:工作簿、工作表、单元格
日常工作中对Excel表格的操作基本会落实到对单元格的操作,那么在VBA中如何定位一个想要操作的单元格,按照这个路径即可:工作簿.工作表.单元格,类似于中国.广东省.广州这样的关系
1)工作簿的VBA表示。工作簿简单来讲就是Excel这个*.xlsx文件本身。对于工作簿一般操作有三种:
- 当前工作簿:ThisWorkbook
- 新建工作簿:(其中空格加下划线 _表示VBA中的续行符,dirpath2为新建工作簿的绝对地址,如dirpath2 = "G:\【10】微信\【3】文章\【3-1】VBA与Excel\test1.xlsx")
- Workbooks.Add
ActiveWorkbook.SaveAs _
Filename:=dirpath2, _
FileFormat :=xlOpenXMLWorkbook, _
CreateBackup:=False
Set wb = ActiveWorkbook
- 打开已有工作簿
- Set wb = Workbooks.Open(dirpath1)
- 其中set wb= 表示将新打开或者新建的工作簿赋给wb这个变量,后续对这个工作簿的使用,直接调用这个变量即可
2)工作表的VBA表示。工作表就是打开Excel文件后,类似下图的"测试","Sheet2"等,可以双击重新命名。
- 对工作表的引用,前面必须有工作簿的标示,如下图中的ThisWorkbook表示当前VBA代码所处的工作簿。
- 可以使用工作表的名称,如"测试",务必使用英文的引号,或者使用数字来引用,根据工作表的位置,如下图中“测试”工作表位置序号为1,“Sheet2”工作表位置为2,“Sheet3”工作表位置为3
- 实际工作中可能通过鼠标调整各工作表的位置,所以建议使用直接引用工作表的名称来调用工作表,如“测试”,防止出错
- Set sht1 = ThisWorkbook.Worksheets(3)
- Set sht2 = ThisWorkbook.Worksheets("测试")
3)单元格的VBA表示。单元格表达方式有两种:Range和Cells,工作表直接可见的行用数字的1,2,3等表示,列号用A,B等来表示
- Range的使用,直接使用行与列的交点即可,如Range("A1"),也可以Range("A" & 3)这样使用
- Cells的使用,需要将列号也转换成数字,如Cells(1, 2),其中2对应的列号就是“B”列,所以也可以这样使用Cells(1,"B")
Set sht3 = ThisWorkbook.Worksheets("测试")
sht3.Range("A1") = 7
sht3.Cells(1, 2) = 8