Board logo

標題: 請教一個sheets單個加密的問題, 煩請大大賜教 [打印本頁]

作者: tata211    時間: 2011-10-21 15:58     標題: 請教一個sheets單個加密的問題, 煩請大大賜教

本帖最後由 GBKEE 於 2011-12-23 18:14 編輯

在網上找了好多資料
得到個跟自己差不多想像的東西

Private Sub Worksheet_Activate()
Sheets("sheet2").Cells.Interior.ColorIndex = 2
Sheets("sheet2").Cells.Font.ColorIndex = 2
If Application.InputBox("請輸入密碼:") = 123 Then
Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56
Else
MsgBox "輸入錯誤,請從新選擇!!"
Sheets("總表").Select
End If
End Sub

但小弟發現實制使用上出現問題:
例如在"sheet2"上儲存退出
下次再開時直接顯示"sheet2"的內容
那樣根本達不到加密的目的
除非每次都在"總表"下儲存退出
有大大可以幫忙修改嗎?
如不管在那個sheet退出都自動回到"總表"

另外還想加入一個管理員專用的密碼能任意打開每個sheet


煩請大大們出手相助(附上測試文檔)
作者: hugh0620    時間: 2011-10-21 16:56

回復 1# tata211

    在下圖中的位置加入程式碼~ 就可以在每次儲存後~ 再重新打開時~ 會選擇總表
    [attach]8298[/attach]
作者: tata211    時間: 2011-10-24 12:40

回復 2# hugh0620


感謝大大的回覆
終於接近我想要的情況了

可是再想請問
能不能設定兩個密碼同時成立?
一個是給管理者使用
另一個是用戶?

又再麻煩大大們了
作者: tata211    時間: 2011-10-24 15:03

本帖最後由 tata211 於 2011-10-24 15:05 編輯

剛又找了些資料研究一下
終於達到可以用兩組以上密碼了
程式以下:

Private Sub Worksheet_Activate()
Sheets("sheet2").Cells.Interior.ColorIndex = 2
Sheets("sheet2").Cells.Font.ColorIndex = 2
pwd = Application.InputBox("請輸入密碼:")
If pwd = 123 Or pwd = 456 Then
Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56
Else
MsgBox "輸入錯誤,請從新選擇!!"
Sheets("總表").Select
End If

End Sub




但測試只能用數字做密碼
且不能以"0"為開頭
有方法改改成字串形式呢?
英文+數字+符號那更完美了
望大大出手相助
作者: hugh0620    時間: 2011-10-25 09:14

本帖最後由 hugh0620 於 2011-10-25 09:16 編輯

回復 4# tata211

  
    其實不用想的太複雜~  你可以將密碼的儲存格格式改成文字格式~
    這樣不管是數字/英文/.... 任何格式都可以~
    只是在撰寫程式碼時~ 要稍加注意一下~

    下面是我之前仿一位大大所寫的使用一個sheet來管理帳密~提供給你參考~
    希望對你有幫助~
   http://forum.twbts.com/viewthread.php?tid=2543&highlight=
作者: tata211    時間: 2011-10-26 12:07

呵~ 看來不是我能掌握的東西
看了一小時都不知如何入手
作者: joychiangg    時間: 2011-11-24 11:28

非常感謝大大的分享,我爬了好多文終於找到您這篇工作表加密的分享。
小妹我試用後,發現有個小問題:
我的workseet有3個,設好上述之vba程式後,按sheet2會跳出視窗要求輸入密碼,
但在該要求輸入密碼視窗後直接按到sheet3,就會顯示出sheet3所有資料,其他資料表內容一樣還是被看光光

請問有無方法可以解決?
作者: GBKEE    時間: 2011-11-24 11:54

回復 7# joychiangg
上傳你的檔案看看
作者: davidoff    時間: 2011-11-24 13:11

回復 7# joychiangg

你該不會一開始只有sheet2有上色和要求密碼吧?
其他不想讓人看到的工作表也要記得在一開始就一併設定好喔。
作者: joychiangg    時間: 2011-12-22 22:11

[attach]8899[/attach]
我的文件如附…
作者: GBKEE    時間: 2011-12-23 18:27

本帖最後由 GBKEE 於 2011-12-23 18:30 編輯

回復 10# joychiangg
加入ThisWorkbook 的預設事件
  1. Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  2.     If Sh.Name <> "Sheet1" Then
  3.         Sh.Cells.Interior.ColorIndex = 2
  4.         Sh.Cells.Font.ColorIndex = 2
  5.     End If
  6. End Sub
複製代碼

作者: Hsieh    時間: 2011-12-23 23:58

本帖最後由 Hsieh 於 2011-12-23 23:59 編輯

回復 10# joychiangg
刪除所有工作表模組內的程序
Thisworkbook模組
  1. Private Sub Workbook_Open()
  2.     Sheets("sheet1").Select
  3. End Sub

  4. Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  5. NoData Sh.Name
  6. End Sub
複製代碼
一般模組
  1. Sub NoData(sht As String)
  2. With Sheets(sht)
  3. If sht = "Sheet1" Then Exit Sub
  4.    .Cells.Font.ColorIndex = 2
  5.    .Cells.Interior.ColorIndex = 2
  6.    pwd = Application.InputBox("請輸入密碼:")
  7.    Select Case sht
  8.    Case "中山"
  9.    p = 40
  10.    Case "東台北"
  11.    p = 13
  12.    Case "建北"
  13.    p = 48
  14.    End Select
  15. If pwd = CStr(p) Or pwd = 6309 Then
  16. Range("A1").Select
  17. Cells.Interior.ColorIndex = xlNone
  18. .Cells.Font.ColorIndex = xlColorIndexAutomatic
  19. Else
  20. MsgBox "輸入錯誤,請從新選擇!!"
  21. Sheets("sheet1").Select
  22. End If
  23. End With
  24. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)