2016-12-13 2 views
0

Я искал и не могу найти причину моей ошибки. Я создаю приложение VBA в Excel, чтобы помочь в обработке финансовых отчетов. У меня есть полная функциональность, и я пытаюсь создать функцию администратора, чтобы конечные пользователи могли войти в систему и изменить множитель в уравнении. У меня есть 2 пользовательских формы, frmLogin и frmAdmin.время выполнения 424 ошибка открытия пользовательской формы из commandbox_click

frmLogin - очень простой, но когда он пытается сделать frmAdmin.Show, я получаю ошибку 424 во время выполнения.

frmLogin

Private Sub LoginButton_Click() 
If Me.txtUsername.Value = "Admin" Then 
    If Me.txtPassword.Value = "password" Then 
     Unload Me 
     frmAdmin.Show 
     Exit Sub 
    Else 
    MsgBox "Sorry, Incorrect Login Details" 
    Me.txtUsername.SetFocus 
    End If 
Else 
MsgBox "Sorry, Incorrect Login Details" 
Me.txtUsername.SetFocus 
End If 
End Sub 

frmAdmin

Private Sub Save_Click() 
Workbook_Refresh 
SaveBackup 
SaveSettings 
CloseForm 
End Sub 

Private Sub Update_Click() 
civa.Value = Sheets("Settings").Range("b1") 
oral.Value = Sheets("Settings").Range("b2") 
End Sub 

Private Sub UserForm_Initialize() 
Settings.Range("b2") = civa.Value 
Settings.Range("b3") = oral.Value 
End Sub 

Private Sub SaveSettings() 
ActiveWorkbook.Save SaveChanges:=True 
End Sub 

Private Sub CloseForm() 
Application.Goto Worksheets("Home Screen").Range("D4") 
Unload Me 
End Sub 

WorkbookRefresh вызывается из Module1.

Любая помощь будет принята с благодарностью.

Стивен

+0

Почему вы должны 'Settings.Range ("b2") = civa.Value'? Что такое 'civa.Value', прежде чем вы открыли форму? Я предполагаю, что 'civa' является своего рода контролем в' frmAdmin'. Возможно, эта линия должна быть отменена? – OpiesDad

+0

Благодаря @OpiesDad, который был отменен, и я сделал его «Листы» («Настройки»), и он, похоже, решил проблему. – user2525062

+1

'ActiveWorkbook.Save' не принимает никаких параметров. Вы должны удалить 'SaveChanges: = True' –

ответ

0

Settings.Range("b2") = civa.Value не имеет смысла в UserForm_Initialize() случае.

Поскольку civa является элементом управления в форме, он еще не имеет значения, поэтому вы не можете использовать его для назначения значения ячейке на вашем листе.

Вместо этого, я думаю, что вы имели в виду civa.Value = Settings.Range("b2")

Смежные вопросы