Board logo

標題: [發問] 多一個if 選擇,多繞一個userform就卡住了,請教。 [打印本頁]

作者: yangjie    時間: 2014-6-23 10:15     標題: 多一個if 選擇,多繞一個userform就卡住了,請教。

本帖最後由 GBKEE 於 2014-6-23 16:35 編輯

[attach]18542[/attach]請教諸位大大
Private Sub Workbook_Open()
    Dim FileName As String
    Dim str1 As String
    str1 = Sheets("基本資料").Cells(1, 1) & Sheets("基本資料").Cells(1, 2)
    FileName = ThisWorkbook.Path & "\資料庫\" & str1 & "學期資料庫\" & str1 & "學期資料.xls"
    str2 = ThisWorkbook.Name
    Dim fsobj As Object
    Set fsobj = CreateObject("Scripting.FileSystemObject")
    If fsobj.FileExists(FileName) Then
    Else
        MsgBox "找不著" & FileName
    End If
    Call MakeMenu
    Application.Visible = False
    'If Left(str2, 8) = "出缺勤暨獎懲登錄" Then
    '    UserForm9.Show
    'Else
        UserForm1.Show
    'End If

End Sub
進入UserForm1    點  "管理者"按鈕   給了正確密碼"520"  正常
                                點  第二個按鈕   給了正確密碼"1234"  正常
一切正常
若改成
    If Left(str2, 8) = "出缺勤暨獎懲登錄" Then
        UserForm9.Show
    Else
        UserForm1.Show
    End If
然後進入UserForm9給了正確密碼"520"   
進入UserForm1    點  "管理者"按鈕   給了正確密碼"520"  卻無法Run
                                點  第二個按鈕   給了正確密碼"1234"  也無法Run
卡住了    也不知道錯在哪裡
求救 求救
作者: GBKEE    時間: 2014-6-23 14:32

回復 1# yangjie

沒有卡住
UserForm9 修正一下
  1. Private Sub UserForm_Initialize()
  2.     With TextBox1
  3.         .PasswordChar = "*" '不顯示 真正輸入的字元
  4.         'PasswordChar 屬性 指定是否顯示其它字元的預留位置,而非顯示實際上輸入 TextBox 中的字元。
  5.         '注意:只在英文模式下有效(數字,英文)
  6.         .SetFocus
  7.     End With
  8. End Sub
  9. Private Sub CommandButton1_Click()
  10.     If TextBox1 = "520" Then
  11.         Unload Me
  12.         UserForm1.Show
  13.     ElseIf Len(TextBox1) > 0 Then
  14.         Dim n%
  15.         Dim V&
  16.         Application.Visible = True
  17.         For V = 1 To ActiveWorkbook.Sheets.Count
  18.             If Sheets(V).Name <> "首頁" Then
  19.                 Sheets(V).Visible = False
  20.             End If
  21.         Next V
  22.         Unload Me
  23.         Application.DisplayAlerts = False
  24.         ActiveWorkbook.Save
  25.         n = 0
  26.         For Each w In Windows
  27.           If Right(w.Caption, 4) = ".xls" Or Right(w.Caption, 5) = ".xlsx" Then n = n + 1
  28.         Next
  29.         If n < 2 Then
  30.             ActiveWindow.Close
  31.             Application.Quit
  32.         Else
  33.             Call DeleteMenu
  34.             With ActiveWorkbook
  35.                 .Close True
  36.             End With
  37.         End If
  38.     Else
  39.        MsgBox "沒輸入密碼"
  40.         TextBox1.SetFocus
  41.     End If
  42. End Sub
複製代碼

作者: yangjie    時間: 2014-6-23 16:09

回復 2# GBKEE
太厲害了
謝謝GBKEE   
With TextBox1
        .PasswordChar = "*"  
        .SetFocus
End With
多學一招




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