ComboBox Keypress та передача даних з користувальницької форми excel до таблиці аркушів


-1

Я намагаюся створити невелику систему інвентаризації за допомогою excel, і я хотів би використовувати макрос, щоб додати новий запис. Моя таблиця та форма користувача є на своєму місці, однак у мене є кілька питань.

По-перше, я не можу "заблокувати" свої комбобокси. Я спробував заблокувати його через свої властивості, однак, результат - я не можу вибрати елемент зі списку. (Комбоботи перенаселені). У мене на аркуші є кнопка (Додати нову запис), і вона містить код:

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

але очевидно це не працює :(

Сподіваюся, хтось може мені допомогти. Спасибі заздалегідь!


Combobox: у нього включена властивість, чому б не маніпулювати цим? Вставте дані: у excel немає властивості lastrow, також вам потрібно звернутися до комірки, яку потрібно вставити.
Máté Juhász

@ MátéJuhász, Привіт, я випробував ці властивості, внаслідок чого я більше не можу його натискати. Хотілося б, щоб користувач мав змогу вибирати лише зі списку, а не зможе видалити чи редагувати його. Що стосується коду, я спробував це: Dim lRow As Long Dim ws as Workheet Set ws = Worksheets ("база даних HO") lRow = ws.Cells (Rows.Count, 1) .End (xlUp) .Offset (1 , 0) .Row With ws .Cells (lRow, 1) .Value = Me.cboClass.Value End With. Однак цей код не працює. Він не вибирає мою таблицю і додає значення за останніми даними :(
Kelvs

Відповіді:


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

Сподіваюся, хтось може вважати це корисним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.