windimi007 发表于 2012-3-7 11:45

D组学委:windimi007前来交作业!{:2912:}

sliang28 发表于 2012-3-7 11:53

C09:sliang28
第一题答案:
Sub 批量添加密码()
Dim i As Integer
Dim j As Integer
For i = 2 To 5
For j = 2 To 5
If Sheets(i).Name = Sheet1.Cells(j, 1) Then
    Sheets(i).Protect Password:=Sheet1.Cells(j, 2)
      End If
   Next j
Next i
End Sub

第二题答案:
Sub 隐藏除主界面工作表()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "主界面" Then'主界面前后插入工作表都能隐藏
Sh.Visible = 0
End If
Next
End Sub
第三题答案:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ThisWorkbook.ActiveSheet.Name <> "主界面" Then ThisWorkbook.Sheets("主界面").Activate
End Sub

从从容容 发表于 2012-3-7 12:42

D03 从从容容
第一题:
Sub 密码()
Dim x, I As Integer
For I = 1 To Sheets.Count
For x = 2 To Sheet1.Range("a65536").End(3).Row
If Sheets(I).Name = Sheet1.Cells(x, 1) Then
Sheets(I).Protect Password:=Sheet1.Cells(x, 2).Value
Exit For
End If
Next x
Next I
End Sub

第二题
Sub 隐藏工作表()
Dim I As Integer
For I = 1 To Sheets.Count
If Sheets(I).Name <> "主界面" Then
Sheets(I).Visible = 2
End If
Next I
End Sub

第三题
Private Sub Workbook_SheetActivate(ByVal sh As Object)
If sh.Name <> "主界面" Then
Sheets("主界面").Activate
End If
End Sub

sliang28 发表于 2012-3-7 13:23

12楼修改答案,批量添加密码上面用了两个FOR,感觉没有Do While好,这样更严谨一些, 所以修改下答案。
Sub 批量添加密码1()
Dim i As Integer
Dim ShName As String
Dim ShPw As String

i = 2

On Error Resume Next

Do While Cells(i, 1) <> ""
    ShName = Cells(i, 1)
    ShPw = Cells(i, 2)
    Sheets(ShName).Protect Password:=ShPw
    i = i + 1
Loop

End Sub

君子豹变 发表于 2012-3-7 13:32



第一题作业答案:
Sub 批量添加保护()
    Sheets("sheet2").Protect Password:=2
    Sheets("sheet3").Protect Password:=89
    Sheets("sheet4").Protect Password:=2
    Sheets("sheet5").Protect Password:=5
End Sub


第二题答案:
Sub 隐藏工作表()
    Dim i As Integer
    i = Sheets.Count - 1
    For i = 1 To i
      Sheets(i).Visible = 0
    Next i
End Sub


第三题答案:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Sheets("主界面").Select
End Sub

zjcat35 发表于 2012-3-7 14:39

E02:zjcat35Sub 加密()
    Dim i As Byte
    For i = 2 To .End(3).Row
      Worksheets(Cells(i, 1).Value).Protect Cells(i, 2)
    Next i
End SubSub 隐藏工作表()
    Dim Sh As Worksheet
    For Each Sh In Worksheets
      If Sh.Name <> "主界面" Then
            Sh.Visible = 2
      End If
    Next Sh
End SubPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets("主界面").Select
End Sub

hshmichael 发表于 2012-3-7 15:38

第一题代码:Sub 批量密码保护()
Dim x%
For x = 2 To Sheets("密码表").Range("a1").CurrentRegion.Rows.Count
   ThisWorkbook.Sheets(Sheets("密码表").Range("a" & x).Value).Protect Password:=Range("b" & x)
Next x
End Sub第二题代码:Sub 隐藏工作表()
Dim x%
x = 1
Do
    If ThisWorkbook.Sheets(x).Name <> "主界面" Then
       ThisWorkbook.Sheets(x).Visible = False
    End If
    x = x + 1
Loop Until x > ThisWorkbook.Sheets.Count
End Sub第三题答案:
为每一个工作表添加:Private Sub Worksheet_Activate()
Sheets("主界面").Activate
End Sub并在工作簿加入代码:Private Sub Workbook_Open()
Sheets("主界面").Activate
End Sub

bynbyn 发表于 2012-3-7 16:54

E13学员bynbyn作业

vbamaster 发表于 2012-3-7 21:28


D05:vbamaster

jxncfxsf 发表于 2012-3-7 22:29

21组 jxncfxsf   总算搞定
页: 1 [2] 3 4 5 6 7 8
查看完整版本: 统计VBA学习小组正式组第八课(第十讲)的积分帖之作业上交贴(第11周)