-1

Я пытаюсь создать небольшую систему инвентаризации, используя Excel, и я хотел бы использовать макрос для добавления новой записи. Моя таблица и пользовательская форма на месте, однако у меня есть несколько проблем.

Во-первых, я не могу "заблокировать" свои списки. Я попытался заблокировать его через его свойства, однако в результате я не могу выбрать элемент из списка. (Comboboxes предварительно заполнены). У меня есть кнопка на моем листе (Добавить новую запись), и она содержит код:

UserForm1.ComboBox1.List = Array("HO", "SI", "SV", "PTSF")
UserForm1.ComboBox2.List = Array("AP", "FU", "GE", "IT")
UserForm1.Show

И на моем комбинированном ящике:

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 8 Or KeyAscii = 127 Then
KeyAscii = 0
Else
End If
end sub

Код на моем комбинированном ящике не работает, и я хотел бы заблокировать его, чтобы ничего нельзя было напечатать или отредактировать.

Вторая проблема заключается в том, что я не знаю, как вызвать мою таблицу и вставить в нее данные своей пользовательской формы. Я пробовал это раньше:

sheet1.table1.Lastrow = userform1.textbox1.value

но, очевидно, это не работает :(

Я надеюсь, что кто-то может помочь мне. Заранее спасибо!

1 ответ1

0

Я решил мою проблему с этими кодами:

Dim ws As Worksheet
Dim lo As ListObject
Dim lr As ListRow

Set ws = Sheets("HO Database")
Set lo = ws.ListObjects(1)
Set lr = lo.ListRows.Add

lr.Range(1, 1).Value = Me.ComboBox2.Value
lr.Range(1, 2).Value = Me.ComboBox1.Value
lr.Range(1, 3).Value = Me.TextBox9.Value
lr.Range(1, 4).Value = Me.TextBox1.Value
lr.Range(1, 5).Value = Me.TextBox2.Value
lr.Range(1, 6).Value = Me.TextBox3.Value
lr.Range(1, 7).Value = Me.TextBox4.Value
lr.Range(1, 8).Value = Me.TextBox5.Value
lr.Range(1, 9).Value = Me.TextBox6.Value
lr.Range(1, 10).Value = Me.TextBox7.Value
lr.Range(1, 11).Value = Me.TextBox8.Value

Надеюсь, кто-то может найти это полезным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .