第5章 Worksheet(工作表)对象
VBA中常用的Excel对象和其属性方法解析

VBA中常用的Excel对象和其属性方法解析在VBA中,Excel对象是我们在编写Excel宏时经常使用的重要元素之一。
通过使用Excel对象,我们可以操作Excel工作簿、工作表、单元格等,实现对Excel数据的读取、写入、操作等功能。
本文将详细解析VBA中常用的Excel对象以及它们的属性和方法。
首先,我们先介绍Excel对象的层级结构。
在VBA中,Excel对象的层级结构分为四个层次:Excel应用程序对象、工作簿对象、工作表对象和单元格对象,由上至下,依次代表了Excel的整体、工作簿、工作表和单元格。
1. Excel应用程序对象(Application对象):Excel应用程序对象是最顶层的对象,它代表了整个Excel应用程序的实例。
在VBA中,我们可以通过创建Application对象来访问Excel应用程序的各项功能和操作。
我们可以通过下面的代码来创建一个Excel应用程序对象:```vbaDim app As Excel.ApplicationSet app = New Excel.Application```2. 工作簿对象(Workbook对象):工作簿对象是Excel文件的最高级别对象,一个Excel应用程序可以包含多个工作簿对象。
在VBA中,我们可以通过创建Workbook对象来打开、创建、保存和关闭Excel工作簿。
下面是创建一个Workbook对象的例子:```vbaDim wb As Excel.WorkbookSet wb = app.Workbooks.Add '创建一个新的工作簿对象```在工作簿对象中,我们可以访问以下一些常用的属性和方法:- Name:表示工作簿的名称。
- Worksheets:表示该工作簿中所有工作表的集合。
可以通过索引或名称来访问特定的工作表。
- Save:保存对工作簿的修改。
- Close:关闭工作簿。
3. 工作表对象(Worksheet对象):工作表对象是Excel文件中的一个表格,每一个Excel工作簿可以包含多个工作表对象。
跟烟花入门VBA之51:工作表对象Worksheet(六)

跟烟花入门VBA之51:工作表对象Worksheet(六)工作表对象的属性告一段落,从今天开始我们讲讲工作表对象的方法。
Worksheet.Activate 方法使当前工作表成为活动工作表。
调用此方法等同于单击工作表的标签。
示例:Worksheets('Sheet1').Activate‘激活Sheet1工作表Workbooks(2).Worksheets(3).Activate‘激活工作簿集合中的第2个工作簿内的第3个工作表Worksheet.Calculate 方法计算特定工作表的单元格。
相当于按F9重新计算一次。
Worksheets('Sheet1').CalculateCalculate方法在工作簿,工作表,单元格甚至应用对象中都有存在。
所有打开的工作簿 Application.Calculate(或只是 Calculate)指定工作表 Worksheets(1).Calculate指定区域 Worksheets(1).Rows(2).CalculateWorksheet.Copy 方法将工作表复制到工作簿的另一位置。
语法:Copy(Before, After)Before 可选Variant 将要在其之前放置所复制工作表的工作表。
如果指定了 After,则不能指定 Before。
After 可选 Variant 将要在其之后放置所复制工作表的工作表。
如果指定了 Before,则不能指定 After。
说明:如果既不指定 Before 也不指定 After,则 Microsoft Excel 将新建一个工作簿,其中包含复制的工作表。
工作表复制后,复制后的新工作表自动成为活动工作表。
示例:Worksheets('Sheet1').CopyAfter:=Worksheets('Sheet3')‘Sheet1工作表复制到SHEET3工作表之后。
excelwriter中获取sheet对象

excelwriter中获取sheet对象在ExcelWriter中获取Sheet对象Excel是一种广泛使用的电子表格软件,它可以对数据进行分析、计算和可视化。
而ExcelWriter是Python中的一个库,它允许我们使用Python生成和修改Excel文件。
在Excel中,Sheet是指工作簿内的一个表格,它由行、列和单元格组成。
在ExcelWriter库中,我们可以通过几个简单的步骤来获取Sheet 对象。
首先,我们需要导入ExcelWriter库,并创建一个工作簿对象:```import xlsxwriterworkbook = xlsxwriter.Workbook('example.xlsx')```然后,我们可以使用`add_worksheet()`方法创建一个新的Sheet对象:```worksheet = workbook.add_worksheet()```在创建Sheet对象时,我们可以指定它的名称:```worksheet = workbook.add_worksheet('Sheet1')```如果我们想要在工作簿内创建多个Sheet对象,可以使用不同的名称进行区分。
接下来,我们可以向Sheet对象中添加数据。
通过指定行和列的索引,可以将数据写入到相应的单元格中:```worksheet.write(0, 0, 'Hello')worksheet.write(0, 1, 'World')```在这个例子中,我们将字符串"Hello"写入到第一行第一列的单元格中,将字符串"World"写入到第一行第二列的单元格中。
除了写入数据,我们还可以设置单元格的格式。
通过使用`add_format()`方法,我们可以创建一个格式对象,并将其应用到单元格上:```format = workbook.add_format()format.set_bold()worksheet.write(0, 0, 'Hello', format)```在这个例子中,我们创建了一个粗体的格式对象,并将其应用到第一行第一列的单元格中。
第5章 Worksheet(工作表)对象PPT

2020/3/15
11
3、使用ActiveSheet属性引用活动工作表
使用ActiveSheet属性可以返回当前活动工作 表
MsgBox
2020/3/15
12
工作表的添加与删除
在工作簿中添加工作表使用Add方法,语法如下
expression.Add(Before, After, Count, Type)
2020/3/15
6
2.2 使用工作表的编号
工作表编号(索引号)是指工作表在工作簿中的位 置,Excel根据工作表在工作表标签中的位置以1开始 从左向右进行编号。
Worksheets(1).Select 该代码选中并激活当前工作簿中第1个工作表
2020/3/15
7
使用Worksheet对象的Index属性可以返回工 作表的编号:
End Sub
2020/3/15
14
三、工作表的添加与删除
3.1、工作表对象的Delete方法删除指定的对象, 语法如下:
expression.Delete
参数expression是必需的,该表达式返回“应用于”列表 中的对象之一 例如:Sheet7.Delete
2020/3/15
15
3.2、工作表中插入行
在工作表的中插入空行,需要使用Insert方法
Sheet1.Rows(3).Insert 在sheet1的第2行和第3行之间插入一行空行
VBA笔记:Workbook、Worksheets对象

VBA笔记:Workbook、Worksheets对象1.对象清单对象说明Application代表excel应⽤程序Workbook代表excel的⼯作簿,⼀个workbook对象代表⼀个⼯作簿对象worksheet代表excel的⼯作表,⼀个worksheet对象代表⼀张普通⼯作表Range代表⼯作表⾥的单元格,可以是单个、也可以是单元格区域2.对象 Application2.1 属性 ScreenUpdating作⽤:屏幕是否刷新的开关Sub InputTest2() Cells.ClearComments Application.ScreenUpdating = False '暂停屏幕刷新,不能看到运算过程 Range('A1:A10') = 100 MsgBox '有看到100的输⼊过程吗?' Range('B1:B10') = 200 MsgBox '有看到200的输⼊过程吗' Application.ScreenUpdating = Tru 刷新屏幕End Sub2.2 属性 DisplayAlerts作⽤:程序在运⾏过程中,是否显⽰警告信息,默认值为trueSub DelSht() Dim sht As Worksheet Application.DisplayAlerts = False '关闭警告信息显⽰ For Each sht In Worksheets If = Then sht.Delete End If Next Application.DisplayAlerts = True '解锁警告信息显⽰2.3 属性 EnableEvents作⽤:限制事件的触发'Worksheet_SelectionChange = ⼯作表点击事件'Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target.Value = Target.Address Application.EnableEvents = False Target.Offset(1, 0).Select Application.EnableEvents = TrueEnd Sub2.4 属性 WorksheetFunction作⽤:部分excel函数在vba⾥并不能直接使⽤,只能通过 WorksheetFunction的⽅式来间接使⽤Sub CountTest() Dim mycount As Integer mycount = Application.WorksheetFunction.CountIf(Range('A1:B50'), '>100') MsgBox 'A1:B50中⼤于100的单元格个数为:' & mycountEnd Sub3.对象:Workbook3.1 基础属性Sub WBMsg() Range('B2:B4').ClearContents Range('B2') = '当前⼯作簿的名字 Range('B3') = ThisWorkbook.Path '当前⼯作簿的路径 Range('B4') = ThisWorkbook.FullName '当前⼯作簿的路径(带名字)End Sub更多的属性,可以在帮助⽂档⾥查看3.2 ⼯作簿的操作新建空⽩⼯作簿Workbooks.Add模板⼯作簿(以⽬标⽂件为模板)Workbooks.Add 'C:\Book1.xls'打开Workbooks.Open 'C:\Book1.xls'激活(选中)Workbooks('Book1'). Activate保存保存ThisWorkbook.Save另存为ThisWorkbook.SaveAs Filename:='C:\Book2.xls'保留原⽂件、另存新⽂件ThisWorkbook.SaveCopyAs Filename:='C:\Book2.xls'关闭关闭所有Workbooks.Close关闭某个⽂件Workbooks('Book2').Close保存并关闭某个⽂件Workbooks('Book2').Close savechanges :=True '写法1Workbooks('Book2').Close True '写法2(省略参数名)3.3 ThisWorkbook与ActiveWorkbook前者是代码所在的⼯作簿,后者是活动的⼯作簿4.对象:Worksheet索引选择第1个⼯作表Worksheets.(1)选择名为'Sheet1'的⼯作表Worksheets.('Sheet1')新建空⽩⼯作表Worksheets.Add插⼊多个⼯作表Worksheets.Add Count:=3在xx⼯作表前后插⼊⼯作表Worksheets.Add before:=Worksheets(1)Worksheets.Add after:=Worksheets(1)在xx⼯作表前后插⼊多个⼯作表Worksheets.Add after:=Worksheets(1) Count:=3改名改名Worksheets(2).Name = '⼯资表'新建起名Sub ShtAdd() Worksheets.Add before:=worksheets(1) = '⼯资表'End SubSub ShtAdd() Worksheets.Add(before:=worksheets(1)).Name='⼯资表'End Sub 删除Worksheets('Sheet1').Delete激活Worksheets('Sheet1').ActivateWorksheets('Sheet1').Select复制将'Sheet1'复制,并粘贴到'考勤表'的前&后⾯Worksheets('Sheet1').copy before:=Worksheets('考勤表')Worksheets('Sheet1').copy after:=Worksheets('考勤表')不使⽤参数,默认将⼯作表复制到新⼯作簿中Worksheets('考勤表').copy移动将'Sheet1'移动到'考勤表'的前&后⾯Worksheets('Sheet1').move before:=Worksheets('考勤表')Worksheets('Sheet1').move after:=Worksheets('考勤表')不使⽤参数,默认将⼯作表移动到新⼯作簿中Worksheets('考勤表').move5.对象:RangeRange对象的内容太⼤,后⾯开个独⽴章。
worksheets对象方法

worksheets对象方法Microsoft Excel是一款广泛应用于数据处理和分析的电子表格软件,它提供了丰富的功能和工具来帮助用户完成各种任务。
在Excel中,worksheets对象是一个非常重要的对象,它代表了工作簿中的一个或多个工作表。
worksheets对象方法提供了一系列操作工作表的功能,下面将介绍几个常用的worksheets对象方法。
1. Add方法worksheets对象的Add方法用于在工作簿中添加新的工作表。
通过Add方法,可以指定新工作表的名称和位置。
例如,可以使用下面的代码在工作簿的末尾添加一个名为"新工作表"的工作表:```Worksheets.Add().Name = "新工作表"```这样就在工作簿中添加了一个名为"新工作表"的工作表。
2. Delete方法worksheets对象的Delete方法用于删除工作簿中的一个或多个工作表。
Delete方法接受一个参数,表示要删除的工作表的索引或名称。
例如,可以使用下面的代码删除工作簿中的第一个工作表:```Worksheets(1).Delete```这样就删除了工作簿中的第一个工作表。
3. Copy方法worksheets对象的Copy方法用于复制工作表。
Copy方法接受一个参数,表示要复制的工作表的索引或名称,同时可以指定目标位置。
例如,可以使用下面的代码将工作簿中的第一个工作表复制到末尾:```Worksheets(1).Copy After:=Worksheets(Worksheets.Count)```这样就在工作簿末尾复制了一份与第一个工作表相同的工作表。
4. Hide方法worksheets对象的Hide方法用于隐藏工作表。
Hide方法接受一个参数,表示要隐藏的工作表的索引或名称。
例如,可以使用下面的代码隐藏工作簿中的第一个工作表:```Worksheets(1).Visible = False```这样就隐藏了工作簿中的第一个工作表。
Excel VBA编程 WorkSheet对象

取消保护工作表。例如Worksheets("Sheet2").Unprotect("ABC")
Range
返回一个Range对象,该对象表示一பைடு நூலகம்单元格或者单元格区域。
SaveAs
保存对不同的文件中的图表或者工作表的更改。
Select
选择一个工作表。例如Worksheets("Sheet3").Select
Visible
设置或者显示一个工作簿。例如Worksheets("Sheet3").Visible=True
SelectionChange
当工作表中选择的区域发生改变时,将产生本事件。
Calculate
在对工作表进行重新计算之后产生此事件。
Change
当更改工作表中的单元格时,产生此事件。
例如,在VBE窗口中的【代码】编辑窗口中,输入“Worksheets("Sheet1").Activate”代码,表示激活该工作表。
Excel VBA
使用Worksheet对象可以处理当前工作簿中的一个工作表内容。例如,可以通过WorkSheet对象中的属性、方法和事件的学习,来掌握使用该对象如何进行删除工作表、打印工作表等操作。
下面通过表10-8来了解一下WorkSheet对象中常用的属性、方法以及事件内容。
表10-8 WorkSheet对象中的属性、方法和事件
PrintOut
打印指定的工作表。例如Worksheets("Sheet3").PrintOut
PrintPreview
打印预览工作表。例如Worksheets("Sheet2").PrintPreview
VBA之WrokSheet工作表对象(精品)

WorkSheet工作表对象(一)如何引用工作表?通过Sheets(index)或Worksheets(index)可返回一个WorkSheet对象(工作簿中如果包含图表工作表,那Sheets(index)有可能返回的是图表对象)。
Index是工作表索引号或者工作表名称。
索引号表示该工作表在工作簿的标签栏上的位置。
所有工作表均包含在索引计数中,即便是隐藏的工作表也是如此。
Worksheets(1)是工作表中第一个(最左边)工作表,而Worksheets(worksheets.count)则是最后一个。
Worksheet.Application 属性如果不使用对象识别符,则该属性返回一个Application 对象,该对象表示Microsoft Excel 应用程序。
如果使用对象识别符,则该属性返回一个表示指定对象(可对一个OLE 自动操作对象使用本属性来返回该对象的应用程序)创建者的Application 对象。
这个属性在之前的工作簿,工作簿集合,工作表集合都包含有,以后再介绍Application 对象。
Worksheet.Cells 属性返回一个Range 对象,它代表工作表中的所有单元格(不仅仅是当前使用的单元格)。
因为Item 属性是Range 对象的默认属性(默认属性:可以为控件设置的属性,以使每次创建该类型的新控件时,这个属性的值都相同),所以可以在Cells 关键字后面紧接着指定行和列索引。
示例:ActiveSheet.Cells(5, 3).Value = "VBA零基础入门"'修改C5单元格的值'5代表行号,3是列号Worksheet.CircularReference 属性返回一个Range 对象,该对象表示工作表上包含第一个循环引用的区域,或返回Nothing(如果工作表上没有循环引用)。
在继续执行计算之前,必须删除循环引用。
示例:Dim rg As RangeSet rg = ActiveSheet.CircularReferenceIf Not rg Is Nothing ThenMsgBox "当前工作表中第一个循环引用的单元格地址为:" & rg.AddressEnd IfWorksheet.CodeName 属性返回对象的代码名,String类型,只读。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、引用工作表的方式
VBA中,在不同的工作表之间转换或者对不同工作 表中的单元格区域进行操作时,需要指定引用的工 作表,通常有下面几种方法:
使用工作表的名称 使用工作表的索引号 使用工作表的代码名称 使用ActiveSheet属性引用活动工作表
2.1、使用工作表的名称
作表名称是指显示在工作表标签中的文本,工作 表名称可以使用WorkSheets集合(可简写为 Sheets)来引用,如下面的代码所示: Worksheets("工作表名").Activate
单元项目实训:
1、编写事件代码,实现对sheet1工作表A1 至F8之间区域的保护,即禁止选择此区域 。 2、编写程序代码,实现对sheet2的保护, 要求用密码进行保护,禁止更改任何内容 。
限制工作表的滚动区域
在VBE中的工程管理窗口选择相 应工作表对象,然后在其属性窗 口中设置ScrollArea属性,即可 限制工作表中滚动的区域,如图 所示。 但是Excel不会记忆该项设置, 当再次打开该工作簿时, ScrollArea属性将被重置,用户 必须重新设置ScrollArea属性才 能限制工作表中的滚动区域
End Sub
2.3、使用工作表的代码名称
工作表的代码名称显示在VBE工 程资源管理器窗口中,在属性窗 口中能够修改工作表代码名称, 在VBA中能够直接使用工作表的 代码名称引用工作表,即使工作 表的名称被修改,代码仍然能够 正常运行。 sheet6.Activate
例:
Sub 使用代码名称激活工作表()
第3课 Worksheet(工作表)对象
知识点
认识工作表对象 引用工作表对象 对工作表对象进行处理 限制工作表滚动区域 保护工作表
一、Worksheet对象和 Worksheets集合
Worksheet 对象:代表一个工作表 Worksheets 对象:指定的或活动工作簿中所有 Worksheet 对象的集合
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim str As String If Target.Column = 1 Then str = Application.InputBox("请输入修改密码") If str = 123 Then Application.EnableEvents = False End If Else Application.EnableEvents = True End If End Sub
参数Before是可选的,指定工作表对象,新建的工作表 将置于此工作表之前。 参数After是可选的,指定工作表对象,新建的工作表 将置于此工作表之后。 如果Before和 After两者均省略,则新建的工作表将插 入到活动工作表之前。 参数Count可选,要新建的工作表的数目。默认值为 1 参数Type可选,指定新建的工作表类型。
工作表的解除保护
Sub jcProt () Sheet5.UnProtect Password:="12345" Sheet5.Cells(1, 4) = 200 End Sub
解除保护,并对相应单元格重新填入新值
对其中一张工作表进行保护方法2: 1,选择其中一张工作表; 2,在事件中选择“active” 3,假设对sheet1进行保护,则可以在事 件中,输入以入代码:
四、工作表的保护与解除保护
在实际应用中,为了防止在使用过程中修改或无 意中修改这些设置。 方法1:一般使用Excel的工作表保护功能来保护 这些设置。
Sub Prot () Sheet5.Cells(1, 4) = 100 Sheet5.Protect Password:="12345" End Sub
三、工作表的添加与删除
3.1、工作表对象的Delete方法删除指定的对象, 语法如下:
expression.Delete
参数expression是必需的,该表达式返回“应用于”列表 中的对象之一 例如:Sheet7.Delete
3.2、工作表中插入行
在工作表的中插入空行,需要使用Insert方法
Worksheet.Cells 属性 :返回一个 Range 对象,它代表工作表中的所有单 元格(不仅仅是当前使用的单元格)。 Worksheet.Columns 属性:返回一个 Range 对象,它代表活动工作表中 的所有列 属性:返回或设置一个 String 值,它代表对象的名称
Sheet1.Rows(3).Insert 在sheet1的第2行和第3行之间插入一行空行
Insert方法应用于Range对象时在工作表中插入一 个单元格或单元格区域,其他单元格作相应移位以 腾出空间
3.3、限制工作表的滚动区域
限制工作表中滚动的区域,可以通过设置 WorkSheet对象的ScrollArea属性来实现。 ScrollArea属性使用以A1样式的区域引用形式( 字符串类型)返回或设置工作表允许滚动的区域 。当设置了工作表滚动区域之后,用户不能选定 滚动区域之外的单元格,但仍然可以选定区域之 外的其他对象(例如图形、按钮等),同时工作 表的一些相应功能可能被禁止(例如工作表全选 、选中整行或整列等)。
Sheet3.Activate End Sub
3、使用ActiveSheet属性引用活动工作表
使用ActiveSheet属性可以返回当前活工作簿中添加工作表使用Add方法,语法如下 expression.Add(Before, After, Count, Type)
工作表的添加与删除
Addsh过程使用Add方法在工作簿中新建“数据 ”工作表
Sub Addsh() Dim Sh As Worksheet With Worksheets Set Sh = .Add(after:=Worksheets(.Count)) = "数据" End With End Sub
限制工作表的滚动区域
解决方法是:在thisworkbook中选择事件 “workbook_open” 并对ScrollArea属性进行设置,如 下: Private Sub workbook_open() Sheet3.ScrollArea ="a1:g5" End Sub 工作簿的Open事件,在打开该工作簿时设置Sheet3工作 表的滚动区域为“a1:g5”单元格区域。 如果需要取消滚动区域的限制,可以将ScrollArea属性值 设置为空 Sheet1.ScrollArea = ""
Private Sub Worksheet_Activate()
sheet2.Select End Sub 注意:实际上是在打开sheet1时将活动工 作表转移到sheet2上面。
对指定区域保护
对其中一张工作表的指定区域进行保护方 法: 1,选择其中一张工作表; 2,在事件中选择“SelectionChange” 3,输入以入代码:
使用Worksheet对象的Index属性可以返回 工作表的编号: MsgBox Worksheets("工作表名").Index (即在工作薄中的编号)
例:
Sub 使用工作表编号激活工作表()
Worksheets(3).select MsgBox Worksheets("工作表名").Index
WorkSheets集合包含所有的工作表 任何时刻工作簿中只有一个工作表是活动工作表
例:
Sub 使用工作表名激活工作表()
Worksheets("sheet2").Activate End Sub
2.2
使用工作表的编号
工作表编号(索引号)是指工作表在工作簿中的位 置,Excel根据工作表在工作表标签中的位置以1开 始从左向右进行编号。 Worksheets(1).Select 该代码选中并激活当前工作簿中第1个工作表