excel学习库

excel表格_excel函数公式大全_execl从入门到精通

「VBA」4.Excel表格基本对象概念介绍

本文将详细介绍Excel表格基本对象的概念,譬如工作簿、工作表、单元格,以及怎么声明引用他们。

  • 工作簿,英文名workbook,指的是一个单独的excel文件。

  • 工作表,英文名worksheet,指的是我们工作簿下的一张表格。一个工作簿里可以有很多张工作表,也就是我们打开工作簿后左下角可以看到的Sheet1、Sheet2。

  • 单元格,英文名cell,指的是工作表上的一个个小格子,也是不可再分的最小对象。单元格就像细胞一样,所以他的英文名和细胞的英文一样是cell。

了解了概念,我们再来说说怎么去声明引用这些工作簿、工作表、单元格。

先来解释一下什么叫声明和引用。说人话就是:

  • 声明:向大家宣布:旺财是狗的名字;

  • 引用:向大家宣布,旺财是村头吴老二家的那只狗。

转成代码就是:

Dim 旺财 As 狗

Set 旺财=村头吴老二家的那只狗

让我们看看工作簿、工作表、单元格各自怎么引用。

工作簿的声明和引用

  • 声明

Dim wb As Workbook

这句代码声明了一个工作簿对象wb。

  • 引用

如果我们有一个Excel文件,在电脑上的位置是D:\abc\a.xlsx,那么我们可以这样引用他:

Set wb=Workbooks.Open("D:\abc\a.xlsx")

这样就让这个工作簿在我们的代码里有有了一个称呼:wb,同时也会打开这个工作簿。如果我们想要引用一个已经打开的工作簿,我们可以使用这种代码:

Set wb=Workbooks("a.xlsx")

如果我们想引用我们正在写代码的这个工作簿,可以使用:

Set wb=ThisWorkbook

工作表的声明和引用

  • 声明

Dim ws As Worksheet

这句代码声明了一个工作表对象ws。

  • 引用

工作表的引用有多种方式。

如果我们要引用工作簿wb中的一张名叫“汇总”的工作表,我们可以使用以下代码:

Set ws= wb.Worksheets(“汇总”)

如果我们要引用工作簿wb中的第二张工作表,我们可以使用以下代码:

Set ws=wb. Worksheets(2)

事实上,工作表自身就有名字,可以在VBA左侧的工程视图中看见:

所以我们不用声明、引用也可以直接用他们自己的名字,如wb.Sheet1、wb.Sheet2。

单元格的声明和引用

  • 声明

Dim rg As Range

这行代码声明了一个单元格区域rg。

Range是一堆单元格的集合范围,他表示表格中的一部分区域。

  • 引用

如果我们只需要引用单元格,比如我们要引用wb中的工作表ws中的C列4行,我们可以使用这样的代码:

Set rg=ws.Range("C4")

或者:

Set rg=ws.Cells(4,3)

Cells(4,3)表示4行3列,也就是C4单元格。

如果我们需要引用一片单元格区域,比如A1到D4的一片矩形区域,我们可以使用:

Set rg= ws.Range("A1:D4")

也可以使用更简单的中括号:

Set rg= ws.[A1:D4]

还有很多别的引用单元格方法,但是并不需要全部记住,只要能解决问题,自己用起来熟练就可以了。

最后,让我们连起来做一遍吧!

丝滑小连招

如果我们要引用路径为D:\VBA\01.xlsx的工作簿里的第三张工作表里 的D6单元格并获得里面的值,我们怎么做?

我们可以这样:

Dim wb As Workbook

Dim ws As Worksheet

Dim rg As Range

Set wb=Workbooks.Open("D:\VBA\01.xlsx")

Set ws=wb.Worksheets(3)

Set rg=ws.Range("D6")

Msgbox rg.Value

我不建议直接一步到位地写成这样:

Dim rg As Range

Set rg= Workbooks.Open("D:\VBA\01.xlsx").Worksheets(3).Range("D6")

Msgbox rg.Value

这种代码看起来省事简单,其实是不好的习惯,不利于检查代码和调试,尽量不要偷懒!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接