ComboBox Keypress 및 Excel 사용자 양식에서 시트 테이블로 데이터 전송

ComboBox Keypress 및 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

하지만 분명히 작동하지 않습니다 :(

누군가가 나를 도울 수 있기를 바랍니다. 미리 감사드립니다!

답변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

누군가가 이것이 유용하다고 생각할 수 있기를 바랍니다.

관련 정보