엑셀을 사용하여 소규모 재고 시스템을 만들려고 하는데, 매크로를 사용하여 새 레코드를 추가하고 싶습니다. 내 테이블과 사용자 양식이 제자리에 있지만 몇 가지 문제가 있습니다.
첫 번째는 콤보박스를 "잠글" 수 없다는 것입니다. 해당 속성을 통해 잠그려고 시도했지만 결과적으로 이제 목록에서 항목을 선택할 수 없습니다. (콤보박스는 미리 채워져 있습니다). 내 시트(새 레코드 추가)에 버튼이 있고 여기에 코드가 포함되어 있습니다.
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
누군가가 이것이 유용하다고 생각할 수 있기를 바랍니다.