ComboBox のキーを押し、Excel ユーザー フォームからシート テーブルにデータを転送する

ComboBox のキーを押し、Excel ユーザー フォームからシート テーブルにデータを転送する

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

コンボボックスのコードが機能しないので、何も入力または編集できないようにロックしたいと考えています。

2 番目の問題は、テーブルを呼び出して、ユーザー フォームにデータを挿入する方法がわからないことです。以前、これを試しました。

sheet1.table1.Lastrow = userform1.textbox1.value

しかし明らかにそれは機能しません:(

誰かが助けてくれると嬉しいです。よろしくお願いします!

答え1

このコードで問題を解決しました:

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

誰かにとってこれが役に立つことを願っています。

関連情報