1、第第3 3课课 Worksheet(工作表)对象(工作表)对象1 知识点知识点认识工作表对象认识工作表对象引用工作表对象引用工作表对象对工作表对象进行处理对工作表对象进行处理限制工作表滚动区域限制工作表滚动区域保护工作表保护工作表22024/11/2一、一、Worksheet对象和对象和 Worksheets集合集合Worksheet 对象:代表一个工作表对象:代表一个工作表Worksheets 对象:指定的或活动工作簿中所有对象:指定的或活动工作簿中所有 Worksheet 对象的集合对象的集合Worksheet.Cells 属性属性:返回一个:返回一个 Range 对象,它代表工作表中的所
2、有单对象,它代表工作表中的所有单元格(不仅仅是当前使用的单元格)。元格(不仅仅是当前使用的单元格)。Worksheet.Columns 属性:返回一个属性:返回一个 Range 对象,它代表活动工作表中对象,它代表活动工作表中的所有列的所有列Worksheet.Name 属性:返回或设置一个属性:返回或设置一个 String 值,它代表对象的名称值,它代表对象的名称32024/11/2二、二、引用工作表的方式引用工作表的方式VBA中,在不同的工作表之间转换或者对不同工作表中的单元格区域进行操作时,需要指定引用的工作表,通常有下面几种方法:使用工作表的名称使用工作表的名称使用工作表的索引号使用工
3、作表的索引号使用工作表的代码名称使用工作表的代码名称使用使用ActiveSheet属性引用活动工作表属性引用活动工作表42024/11/22.1、使用工作表的名称使用工作表的名称作表名称是指显示在工作表标签中的文本,工作作表名称是指显示在工作表标签中的文本,工作表名称可以使用表名称可以使用WorkSheets集合集合(可简写为(可简写为Sheets)来)来引用,如下面的代码所示引用,如下面的代码所示:Worksheets(工作表名工作表名).ActivateWorkSheets集合包含所有的工作表集合包含所有的工作表任何时刻工作簿中只有一个工作表是活动工作表任何时刻工作簿中只有一个工作表是活动
4、工作表52024/11/2例:例:Sub 使用工作表名激活工作表使用工作表名激活工作表()Worksheets(sheet2).ActivateEnd Sub62024/11/22.2使用工作表的使用工作表的编编号号工作表工作表编编号号(索引号)(索引号)是指工作表在工作簿中的位是指工作表在工作簿中的位置,置,Excel根据工作表在工作表标签中的位置以根据工作表在工作表标签中的位置以1开开始从左向右进行编号。始从左向右进行编号。Worksheets(1).Select该该代码选中并激活当前工作簿中第代码选中并激活当前工作簿中第1个工作表个工作表72024/11/2使用使用Worksheet对象
5、的对象的Index属性可以返回属性可以返回工作表的工作表的编编号号:MsgBox Worksheets(工作表名工作表名).Index(即在工作薄中的编号即在工作薄中的编号)82024/11/2例:例:Sub 使用工作表编号激活工作表使用工作表编号激活工作表()Worksheets(3).selectMsgBox Worksheets(工作表名工作表名).IndexEnd Sub92024/11/22.3、使用工作表的代码名称使用工作表的代码名称工作表的代码名称显示在工作表的代码名称显示在VBE工工程资源管理器窗口中,在属性窗程资源管理器窗口中,在属性窗口中能够修改工作表代码名称,口中能够修改
6、工作表代码名称,在在VBA中能够直接使用工作表的中能够直接使用工作表的代码名称引用工作表,即使工作代码名称引用工作表,即使工作表的名称被修改,代码仍然能够表的名称被修改,代码仍然能够正常运行。正常运行。sheet6.Activate102024/11/2例:例:Sub使用使用代码名称代码名称激活工作表激活工作表()Sheet3.ActivateEnd Sub112024/11/23、使用使用ActiveSheet属性引用活动工作表属性引用活动工作表使用使用ActiveSheet属性可以返回属性可以返回当前当前活动工活动工作表作表MsgBox ActiveSheet.Name122024/11/
7、2工作表的添加与删除工作表的添加与删除在工作簿中添加工作表使用在工作簿中添加工作表使用Add方法方法,语法如下语法如下expression.Add(Before,After,Count,Type)参数Before是可选的,指定工作表对象,新建的工作表将置于此工作表之前。参数After是可选的,指定工作表对象,新建的工作表将置于此工作表之后。如果Before和 After两者均省略,则新建的工作表将插入到活动工作表之前。参数Count可选,要新建的工作表的数目。默认值为 1参数Type可选,指定新建的工作表类型。132024/11/2工作表的添加与删除工作表的添加与删除Addsh过程使用过程使用
8、Add方法在工作簿中新建方法在工作簿中新建“数据数据”工作表工作表Sub Addsh()Dim Sh As Worksheet With WorksheetsSet Sh=.Add(after:=Worksheets(.Count)Sh.name=数据 End WithEnd Sub142024/11/2三、三、工作表的添加与删除工作表的添加与删除3.1、工作表对象的工作表对象的Delete方法删除指定的对象,方法删除指定的对象,语法如下:语法如下:expression.Delete参数expression是必需的,该表达式返回“应用于”列表中的对象之一例如:Sheet7.Delete 152
9、024/11/23.2、工作表中插入行工作表中插入行在工作表的中插入空行,需要使用在工作表的中插入空行,需要使用Insert方法方法Sheet1.Rows(3).Insert在sheet1的第2行和第3行之间插入一行空行Insert方法应用于方法应用于Range对象时在工作表中插入一对象时在工作表中插入一个单元格或单元格区域,其他单元格作相应移位以个单元格或单元格区域,其他单元格作相应移位以腾出空间腾出空间162024/11/23.3、限制工作表的滚动区域限制工作表的滚动区域限制工作表中滚动的区域,可以通过设置限制工作表中滚动的区域,可以通过设置WorkSheet对象的对象的ScrollAre
10、a属性来实现。属性来实现。ScrollArea属性使用以属性使用以A1样式的区域引用形式样式的区域引用形式(字符串类型)返回或设置工作表允许滚动的区(字符串类型)返回或设置工作表允许滚动的区域。当设置了工作表滚动区域之后,用户不能选域。当设置了工作表滚动区域之后,用户不能选定滚动区域之外的单元格,但仍然可以选定区域定滚动区域之外的单元格,但仍然可以选定区域之外的其他对象(例如图形、按钮等),同时工之外的其他对象(例如图形、按钮等),同时工作表的一些相应功能可能被禁止(例如工作表全作表的一些相应功能可能被禁止(例如工作表全选、选中整行或整列等)。选、选中整行或整列等)。172024/11/2限制
11、工作表的滚动区域限制工作表的滚动区域在在VBE中的工程管理窗口选择相中的工程管理窗口选择相应工作表对象,然后在其属性窗应工作表对象,然后在其属性窗口中设置口中设置ScrollArea属性,即可属性,即可限制工作表中滚动的区域,如图限制工作表中滚动的区域,如图 所示。所示。但是但是Excel不会记忆该项设置,不会记忆该项设置,当再次打开该工作簿时,当再次打开该工作簿时,ScrollArea属性将被重置,用户属性将被重置,用户必须重新设置必须重新设置ScrollArea属性才属性才能限制工作表中的滚动区域能限制工作表中的滚动区域182024/11/2限制工作表的滚动区域限制工作表的滚动区域解决方法
12、是解决方法是:在:在thisworkbook中选择中选择事件事件“workbook_open”并对并对ScrollArea属性进行设置属性进行设置,如,如下:下:工作簿的工作簿的Open事件,在打开该工作簿时设置事件,在打开该工作簿时设置Sheet3工作工作表的滚动区域为表的滚动区域为“a1:g5”单单元格区域。元格区域。如果需要取消滚动区域的限制,可以将如果需要取消滚动区域的限制,可以将ScrollArea属性值属性值设置为空设置为空 Sheet1.ScrollArea=Private Sub workbook_open()Sheet3.ScrollArea a1:g5End Sub1920
13、24/11/2四、四、工作表的保护与解除保护工作表的保护与解除保护在实际应用中,为了防止在使用过程中修改或无在实际应用中,为了防止在使用过程中修改或无意中修改这些设置意中修改这些设置。方法:方法:一般使用一般使用Excel的工作表保护功能来保护的工作表保护功能来保护这些设置。这些设置。Sub Prot()Sheet5.Cells(1,4)=100Sheet5.Protect Password:=12345End Sub202024/11/2工作表的解除保护工作表的解除保护Sub jcProt()Sheet5.UnProtect Password:=12345Sheet5.Cells(1,4)=
14、200End Sub解除保解除保护,并,并对相相应单元格重新填入新元格重新填入新值212024/11/2对其中一张工作表进行保护对其中一张工作表进行保护方法方法:,选择其中一张工作表;,选择其中一张工作表;,在,在事件中事件中选择选择“active”,假设对,假设对sheet1进行保护,则可以在事进行保护,则可以在事件中,输入以入代码:件中,输入以入代码:222024/11/2Private Sub Worksheet_Activate()sheet2.SelectEnd Sub注意:实际上是在打开注意:实际上是在打开sheet1时将活动工时将活动工作表转移到作表转移到sheet2上面。上面。
15、232024/11/2对指定区域保护对指定区域保护对其中一张工作表的指定区域进行保护方对其中一张工作表的指定区域进行保护方法:法:,选择其中一张工作表;,选择其中一张工作表;,在,在事件中事件中选择选择“SelectionChange”,输入以入代码:,输入以入代码:242024/11/2Private 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 IfEnd Sub252024/11/2单元项目实训:单元项目实训:1、编写事件代码,实现对、编写事件代码,实现对sheet1工作表工作表A1至至F8之间区域的保护,即禁止选择此区之间区域的保护,即禁止选择此区域。域。2、编写程序代码,实现对、编写程序代码,实现对sheet2的保护,的保护,要求用密码进行保护,禁止更改任何内容。要求用密码进行保护,禁止更改任何内容。262024/11/2






