Ошибка при предоставлении доступа к определенной учетной записи пользователя - PullRequest
0 голосов
/ 27 апреля 2019

Не понимаю, почему следующие результаты с ошибкой компиляции, пожалуйста, помогите.

проблема, возникшая в VBA, при попытке создать доступ к учетной записи пользователя с соответствующим доступом и чуть ниже отметки

Sub CheckUser()
Dim UserRow, SheetCol As Long
Dim SheetNm As String
With Sheet1
.Calculate

If .Range("B8").Value = Empty Then 'Incorrect Username
MsgBox "Please enter a correct Username"
Exit Sub
End If

If .Range("B7").Value <> True Then 'Incorrect password
MsgBox "Please enter correct Password"
Exit Sub
End If

LoginForm.Hide
.Range("B5,B6").ClearContents
UserRow = .Range("B8").Value 'User row

For SheetCol = 7 To 19
SheetNm = .Cells(5, SheetCol).Value 'Sheet Name
If .Cells(UserRow, SheetCol).Value = "Ð" Then
Sheets(SheetNm).Unprotect "123"
Sheets(SheetNm).Visible = xlSheetVisible
End If

If .Cells(UserRow, SheetCol).Value = "Ï" Then
Sheets(SheetNm).Protect "123"
Sheets(SheetNm).Visible = xlSheetVisible

If .Cells(UserRow, SheetCol).Value = "x" Then Sheets(SheetNm).Visible = xlSheetVeryHidden
Next SheetCol
End With
End Sub

Sub CloseworkBook()
Sheet15 Activate
Dim WkSht As Worksheet
For Each WkSht In ThisWorkbook.Worksheets
If WkSht <> "Start" Then WkShy.Visible = xlSheetVeryHidden
Next WkSht
ThisWorkbook.Save
End Sub

Думал, что у меня все хорошо ... не угадаю

Ожидается, что макрос заработает, но не работает

1 Ответ

0 голосов
/ 28 апреля 2019

Как уже упоминалось в комментариях, некоторые опечатки и ошибки в вашем коде. Я отредактировал все, что смог найти с помощью быстрого просмотра. Также я рекомендую использовать надстройку rubberduck com. Он имеет множество мощных функций, которые помогут вам улучшить и обнаружить ошибки в вашем коде.

Option Explicit 'Always add this to all your modules (in VBE--> tools--> Require Variable declaration)

Sub CheckUser()
Dim UserRow, SheetCol As Long
Dim SheetNm As String
Dim Sheet1 As Worksheet 'declare worksheet
Set Sheet1 =Sheets("Sheet1") 'set worksheet

With Sheet1
.Calculate

If .Range("B8").Value = Empty Then 'Incorrect Username
MsgBox "Please enter a correct Username"
Exit Sub
End If

If .Range("B7").Value <> True Then 'Incorrect password
MsgBox "Please enter correct Password"
Exit Sub
End If

LoginForm.Hide
.Range("B5,B6").ClearContents
UserRow = .Range("B8").Value 'User row

For SheetCol = 7 To 19
SheetNm = .Cells(5, SheetCol).Value 'Sheet Name
If .Cells(UserRow, SheetCol).Value = "Ð" Then
Sheets(SheetNm).Unprotect "123"
Sheets(SheetNm).Visible = xlSheetVisible
End If

If .Cells(UserRow, SheetCol).Value = "Ï" Then
Sheets(SheetNm).Protect "123"
Sheets(SheetNm).Visible = xlSheetVisible
End If ' added missing End if statement

If .Cells(UserRow, SheetCol).Value = "x" Then Sheets(SheetNm).Visible = xlSheetVeryHidden
Next SheetCol
End With
End Sub

Sub CloseworkBook()
Sheet15.Activate 'Sheet 15.Activate Not Sheet15 Activate
Dim WkSht As Worksheet
For Each WkSht In ThisWorkbook.Worksheets
If WkSht <> "Start" Then WkSht.Visible = xlSheetVeryHidden 'edited WkShy to the correct WkSht
Next WkSht
ThisWorkbook.Save
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...