Я начинаю использовать VBA в Excel. Я пытаюсь создать форму пользователя, которая выглядит как this. У меня есть все кодировки, но когда я запускаю его с помощью командной кнопки в Excel, ListBox не заполняется. Когда я пытаюсь ввести цифры и нажмите «отправить», я получаю «Ошибка времени выполнения» 424: «Требуется объект». Когда я нажимаю отладки, он берет меня к линииListBox не заполняется
Cells(emptyRow, 1).Value = dotwListBox.Value
Я не уверен, что происходит. Любая помощь будет оценена! Вот мой код:
Private Sub cancel_Click()
Unload Me
End Sub
Private Sub clear_Click()
Call UserForm1_Initialize
End Sub
Private Sub submit_Click()
Dim emptyRow As Long
'Make Sheet3 active
Sheet3.Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer information
Cells(emptyRow, 1).Value = dotwListBox.Value
Cells(emptyRow, 2).Value = t235tocbTextBox.Value
Cells(emptyRow, 3).Value = t235codbTextBox.Value
Cells(emptyRow, 4).Value = apiphbTextBox.Value
Cells(emptyRow, 5).Value = apiturbiditybTextBox.Value
Cells(emptyRow, 6).Value = apitocbTextBox.Value
Cells(emptyRow, 7).Value = apicodbTextBox.Value
Cells(emptyRow, 8).Value = apibodbTextBox.Value
Cells(emptyRow, 9).Value = longbaydobTextBox.Value
Cells(emptyRow, 10).Value = asudobTextBox.Value
Cells(emptyRow, 11).Value = rasmlssbTextBox.Value
Cells(emptyRow, 12).Value = clarifierturbiditybTextBox.Value
Cells(emptyRow, 13).Value = clarifierphbTextBox.Value
Cells(emptyRow, 14).Value = clarifiernh3bTextBox.Value
Cells(emptyRow, 15).Value = clarifierno3bTextBox.Value
Cells(emptyRow, 16).Value = clarifierenterococcibTextBox.Value
Cells(emptyRow, 17).Value = clarifierphosphorusbTextBox.Value
End Sub
Private Sub UserForm1_Initialize()
'Empty t235tocbTextBox
t235tocb.Value = ""
'Empty t235codTextBox
t235codb.Value = ""
'Fill dotwListBox
With dotwListBox
.AddItem "Monday"
.AddItem "Tuesday"
.AddItem "Wednesday"
.AddItem "Thursday"
.AddItem "Friday"
End With
'Empty apiphbTextBox
aphiphb.Value = "1"
'Empty apiturbiditybTextBox
apiturbidityb.Value = ""
'Empty apitocbTextBox
apitocb.Value = ""
'Empty apicodbTextBox
apicodb.Value = ""
'Empty apibodbTextBox
apibodb.Value = ""
'Empty longbaydobTextBox
longbaydob.Value = ""
'Empty asudobTextBox
asudob.Value = ""
'Empty rasmlssbTextBox
rasmlssb.Value = ""
'Empty clarifierturbiditybTextBox
clarifierturbidityb.Value = ""
'Empty clarifierphbTextBox
clarifierphb.Value = ""
'Empty clarifiernh3bTextBox
clarifiernh3b.Value = ""
'Empty clarifierno3bTextBox
clarifierno3b.Value = ""
'Empty clarifierenterococcibTextBox
clarifierenterococcib.Value = ""
'Empty clarifierphosphorusTextBox
clarifierphosphorusb.Value = ""
End Sub
Является ли 'dotwListBox' пустым ListBox? Если это так, то неудивительно, почему это дает вам ошибку. 'Sub UserForm_Initialize' должен работать, если ListBox был назван правильно. Может быть, вы хотите проверить, действительно ли '(Name)' в окне свойств для ListBox установлено на 'dotwListBox'? Кроме того, могу ли я рекомендовать, чтобы вы начали кодирование явно, добавив лист и книгу в «Ячейки (emptyRow, 1) .Value'. Например, вот так: «С листом3», а затем «.Cells (emptyRow, 1) .Value'. – Ralph
Имя, которое я использовал, не совпадает с именем в окне свойств, поэтому я исправил это. Он все еще не заполнял ListBox, поэтому я закончил использование функции RowSource и вытащил содержимое из группы ячеек на пустой лист. И спасибо за отзыв о кодировании явно на лист! Я новичок и все, что помогает прояснить мой код, потрясающе! – srs1011