|
本帖最后由 zhouyunj 于 2012-3-27 22:32 编辑
感谢兰版的精彩教学,受益匪浅,万分感激!
以下所有笔记均为兰版每周二晚培训课程的本人做的笔记--完整版
【第10讲】工作表操--2012年03月06日
主要内容:
1、工作表选取
2、工作表插入
3、工作表移动
4、工作表保护
5、工作表隐藏
-------------------------------------------------
上节回顾---
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim x, wb As Workbook, k As Integer
If Sh.Name = "Sheet1" And Target.Address = "$E$5" Then
Set wb = Workbooks.Open(ThisWorkbook.Path & "/价格表.xls")
With wb.Sheets("sheet1")
For x = 1 To 7
If .Range("a" & x) = Target Then '如果a1 = Target值,那么
k = .Range("b" & x) 'k = b1 的值
wb.Close False
Range("e7") = k
Exit Sub
End If
Next x
End With
wb.Close False
Range("e7") = "查找不到"
End If
End Sub
------------------------------------------------------
'本次内容:
'当前被选取的工作表:activesheet
'直接使用 Sheet1 代表Microsoft Excel对象的后台名称,只能改变sheet显示名
'-----5种表示同一个工作表的方法:
'--------------------------------
'Sheets ("精英培训") --sheet自定义的名称
'Sheets(2) --所在位置从左至右数:第2个
'activesheet --正在使用的sheet
'Sheet4 --原名称,系统后台排序序号 --sheet:是个集合,包括工作表,图表等
'worksheets("精英培训") --worksheets:为工作表
'选择名字为"sheet2"字符串的sheet
Sub 选取指定工作表()
Sheets("sheet2").Select
End Sub
'选择从左到右的第2个sheet页
Sub 选取工作表2()
Sheets(2).Select
End Sub
'activate激活工作表,同Select
Sub 选取指定工作表3()
Sheets("sheet2").Activate
End Sub
'选取多个工作表
Sub 选取多个工作表工作表()
Sheets(Array("sheet1", "sheet2", "sheet3", "sheet4")).Select
End Sub
'选取多个工作表方法2 --选取从左向右数第1个sheet和第4个sheet,与sheet的命名无关,只有位置有关
Sub 选取多个工作表方法2()
Sheets(Array(1, 4)).Select
End Sub
'选取所有工作表
Sub 选取所有工作表()
Sheets.Select
End Sub
------插入工作表
'插入工作表(当前sheet页之前?)
Sub 插入工作表()
Sheets.Add
End Sub
Sub 插入多个工作表() '2个
Sheets.Add Count:=2
End Sub
Sub 在指定位置之前插入工作表()
Sheets.Add before:=Sheets("sheet3")
End Sub
Sub 在指定位置之前插入2个工作表()
Sheets.Add before:=Sheets("一月"), Count:=2
End Sub
Sub 在指定位置之后插入工作表()
Sheets.Add after:=Sheets("一月")
End Sub
Sub 在指定最后位置后插入工作表()
Sheets.Add after:=Sheets(Sheets.Count)
End Sub
Sub 在指定最前位置之前插入工作表()
Sheets.Add before:=Sheets(1)
End Sub
Sub 插入单个工作表并命名()
Dim sh As Object
Set sh = Sheets.Add
sh.Name = "2月"
End Sub
Sub 插入单个工作表并命名1()
Sheets.Add
ActiveSheet.Name = "3月"
End Sub
Sub 插入多个工作表并命名()
Dim i As Integer
For i = 1 To 4
Sheets.Add
ActiveSheet.Name = i & "月"
Next i
End Sub
'插入前判断是否存在“汇总”工作表,不存在则添加
Sub 插入前判断是否存在()
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name = "汇总" Then
MsgBox "汇总表已存在"
Exit Sub
End If
Next i
Sheets.Add
ActiveSheet.Name = "汇总"
End Sub
-------移动工作表
Sub 移动工作表之前()
Sheets("sheet1").Move before:=Sheets("一月")
End Sub
Sub 移动工作表之后()
Sheets("sheet1").Move after:=Sheets("一月")
End Sub
Sub 复制工作表之后()
Sheets("sheet1").Move after:=Sheets("一月")
End Sub
Sub 移动到新的工作簿()
Sheets("sheet1").Move
End Sub
Sub 复制到新的工作簿()
Sheets("sheet3").Copy
End Sub
Sub 移动到新的工作簿的某个工作表之前() '“复制到.xls”文档需要提前打开
Sheets("汇总").Move before:=Workbooks("复制到.xls").Sheets(1)
End Sub
Sub 复制到新的工作簿的某个工作表之前() '“复制到.xls”文档需要提前打开
Sheets("sheet1").Copy before:=Workbooks("复制到.xls").Sheets(2)
End Sub
Sub 工作表另存工作簿()
Dim Mbook As Workbook
Set Mbook = ActiveWorkbook
Dim i As Integer
For i = 1 To Mbook.Worksheets.Count
Mbook.Worksheets.Copy
ActiveWorkbook.SaveAs Filename:="c:\" & Mbook.Worksheets(i).Name & ".xls"
ActiveWindow.Close ' 即activeworkbook 的关闭
Next i
End Sub
------工作薄密码保护
Sub 工作表保护密码()
Sheets("sheet1").Protect Password:=123
End Sub
Sub 工作表解除保护密码()
Sheets("sheet1").Unprotect Password:=123
End Sub
Sub 一次给所有的工作表添加保护()
Dim x As Integer
For x = 1 To Sheets.Count
Sheets(x).Protect Password:=123
Next x
End Sub
Sub 一次给所有的工作表删除保护()
Dim x As Integer
For x = 1 To Sheets.Count
Sheets(x).Unprotect Password:=123
Next x
End Sub
Sub 判断工作表是否被保护() 'protectContents = true
If Sheet1.ProtectContents = True Then
MsgBox "工作表被保护"
Else
MsgBox "工作表未被保护"
End If
End Sub
-------隐藏工作表
'visible = 0 隐藏
'visible = 2 深度隐藏
'visible = -1 取消隐藏
Sub 隐藏一个工作表()
Sheets("sheet").Visible = 0
End Sub
Sub 深度隐藏一个工作表()
Sheets("sheet").Visible = 2
End Sub
Sub 隐藏多个工作表()
Sheets(Array("sheet1", "sheet2")).Visible = 0
End Sub
Sub 所有工作表取消隐藏()
Dim i As Integer
For i = 0 To Sheets.Count
Sheets(i).Visible = -1
Next i
End Sub
Private Sub Worksheet_Activate()
'MsgBox "禁止查看sheet3"
' Sheets("sheet2").Select
Dim str
str = Application.InputBox("请输入查看密码呢!")
If str <> 123 Then
Sheets("sheet3").Select
End If
End Sub
Private Sub Worksheet_Calculate()
MsgBox "改变公式提示"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "编辑了单元格的值 " & Target.Address
End Sub
Public flag As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'只要选择第一列就需要输入密码认证
Dim str
If Target.Column = 1 Then '如果选择第1列
If flag <> 1 Then '在模块中声明的公共变量 public flag as integer
str = InputBox("请输入第1列密码", "身份验证")
If str = 123 Then
flag = 1 '将flag变更置为1,后面不再判断密码
Else
[b1].Select '密码输入错后,就将光标放在b1
End If
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'只要选择第一列就需要输入密码认证
Dim str
If Target.Column = 1 Then '如果选择第1列
If m <> 1 Then '在模块中声明的公共变量 public m as integer
str = InputBox("请输入第1列密码", "身份验证")
If str = 123 Then
m = 1 '将m变更置为1,后面不再判断密码,其实m就是个flag标志
Else
[b1].Select '密码输入错后,就将光标放在b1
End If
End If
End If
End Sub
|
|