0
我有點新,有點舊VBA。Excel的VBA。當再次加載表單時如何擺脫錯誤91
我有兩個學生(男孩和女孩)的列表,我隨機調用他們的名字重新排序。但是,當一個列表更短時,我希望VBA再次選擇範圍2(第一個學生),以便他們可以繼續回答問題。但是,當它再次加載時,出現錯誤91:/
我有一個顯示學生姓名和另一個顯示問題的表單。問題在於初始化事件。這是密碼
Private Sub UserForm_Initialize()
Dim NUEVAPOSICIONb As range
Dim NUEVAPOSICIONg As range
Form_00_ListaDeAlumnos.Width = ActiveWindow.Width 'IGUALA ANCHO FORMULARIO A ANCHO DE EXCEL
Form_00_ListaDeAlumnos.Height = Application.Height ''IGUALA ALTO FORMULARIO A ALTO DE EXCEL
'PONE TODOS LOS TABSTOPS Y FOCUSONCLICK EN FALSE
On Error Resume Next
For i = 0 To Controls.Count - 1 ' Use the Controls collection
Controls(i).TabStop = False
Controls(i).TakeFocusOnClick = False
Next
''SI DICE CHICOS
If Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("WHOSE TURN IS IT?").range(2) = "BOYS" Then
Form_00_ListaDeAlumnos.BackColor = vbBlue
Label1.BackColor = vbBlue
'CAMBIA EL SEXO PARA EL PROXIMO EQUIPO:CHICAS
Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("WHOSE TURN IS IT?").range(2) = "GIRLS"
Set NUEVAPOSICIONb = Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("Position of Boys").range(2)
'SELECCIONA POSICION DE TABLA DE CHICOS, FILA APELLIDO Y NOMBRES
Sheets("Lista Primer Trimestre").Select
Sheets("Lista Primer Trimestre").ListObjects("LISTA_1T_CHICOS").ListColumns("APELLIDO Y NOMBRE").range(NUEVAPOSICIONb).Select
''SI DICE CHICAS
ElseIf Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("WHOSE TURN IS IT?").range(2) = "GIRLS" Then
Form_00_ListaDeAlumnos.BackColor = vbRed
Label1.BackColor = vbRed
'CAMBIA EL SEXO PARA EL PROXIMO EQUIPO:CHICOS
Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("WHOSE TURN IS IT?").range(2) = "BOYS"
Set NUEVAPOSICIONg = Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("Position of Girls").range(2)
'SELECCIONA ENCABEZADO DE TABLA DE CHICOS, FILA APELLIDO Y NOMBRES
Sheets("Lista Primer Trimestre").Select
Sheets("Lista Primer Trimestre").ListObjects("LISTA_1T_CHICAS").ListColumns("APELLIDO Y NOMBRE").range(NUEVAPOSICIONg).Select
End If
'PARA QUE CADA VEZ QUE VENGA A BUSCAR A UN CHICO SIGA EL SIGUIENTE
'SI HAY DATOS DEBAJO
If Selection.Offset(1, 0) <> Empty Then
ActiveCell.Offset(1, 0).Select
TextBox1_Nombre.Text = Selection
'COPIAR QUIÉN FUE SELECCIONADO EN UNA CELDA EN SETTINGS
sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("Chosen_student").range(2) = Selection
ElseIf Selection.Offset(1, 0) = Empty Then
'SI NO QUEDAN MÁS ALUMNOS
MsgBox "All Students have been chosen"
Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("WHOSE TURN IS IT?").range(2) = "BOYS"
Sheets("Settings").ListObjects("WHOSETURNISIT").ListColumns("Position of Boys").range(2) = 1
Set NUEVAPOSICIONb.Value = 2
Set NUEVAPOSICIONg.Value = 2
Unload Me
load_Form_00_ListaDeAlumnos
End If
End Sub
在這裏您的鏈接下載文件:My file。
如果按'F8'逐行運行代碼,哪條線會產生錯誤? – Tim
在載入表單時卸載表單並不是一個好主意。 – Rory
請在代碼中對'On Error Resume Next'發表評論,以便獲得錯誤消息。如果沒有顯示錯誤,就不可能麻煩地拍攝像這樣的東西。這是不應該用於一兩行或多行代碼的事情,因爲一個非常特殊的原因! –