zhouyunj 发表于 2012-3-27 22:29

每周二培训笔记分享【第10讲】工作表操作--2012年03月06日

本帖最后由 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
                .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
                .Select   '密码输入错后,就将光标放在b1
            End If
      End If
    End If
End Sub

libenwen2011 发表于 2012-3-29 11:24

谢谢分享。                     
页: [1]
查看完整版本: 每周二培训笔记分享【第10讲】工作表操作--2012年03月06日