Я разрабатываю инструмент для отслеживания оценок учеников и использую пользовательскую форму для управления данными учеников.
Я написал код, основанный на ответах на предыдущие вопросы, для удаления той же строки на 14 листах в рабочей книге, которыесодержат различные данные ученика, но я получаю сообщение об ошибке «Требуется объект» в строке WshtNameCrnt.Rows(l).Delete
в приведенном ниже коде:
Private Sub cmbDelete_Click()
Dim WshtNames As Variant
Dim WshtNameCrnt As Variant
WshtNames = Array("Pupil Data", "RWM", "Art", "Computing", "Design Technology", "Geography", "History_", _
"MFL", "Music", "PE", "RE", "Science", "Bookbands", "KS1 - TRP")
Dim msgResponse As String 'confirm delete
Application.ScreenUpdating = False
msgResponse = MsgBox("This will delete the selected record. Continue?", _
vbCritical + vbYesNo, "Delete Entry")
Select Case msgResponse 'action dependent on response
Case vbYes
Dim l As Long
l = ActiveCell.Row 'store currently active cell row
For Each WshtNameCrnt In WshtNames
WshtNameCrnt.Rows(l).Delete
Next
'restore form settings
With Me
.cmbAmend.Enabled = False 'prevent accidental use
.cmbDelete.Enabled = False 'prevent accidental use
.cmbAdd.Enabled = True 'restore use
'clear form
Call ClearControls
Call ResortData
End With
Case vbNo
Exit Sub 'cancelled
End Select
Application.ScreenUpdating = True
End Sub
Я предполагаю, что проблема заключается в том, что мой массив имен рабочих листов имеет размеры как вариантно я не уверен в наилучшем способе установить это как объект и циклически просматривать листы в массиве.
Пожалуйста, кто-то может посоветовать мне, если мое предположение верно, и предложить / показать мне, как решить проблему