Page 1 of 1

VBA Combobox มี 2 คอลัมน์ ต้องการดึงค่าจากคอลัมน์ที่กำหนด ต้องปรับปรุงโค้ดอย่างไรครับ

Posted: Tue Aug 02, 2022 11:11 am
by 10idlnw
ผมมีฟอร์ม แสดงเดือนเป็นตัวเลขและชื่อเดือนภาษาไทย ผมต้องการให้ Combobox แสดงชื่อเดือนภาษาไทย(Column2) แต่เวลาเพิ่มใน worksheet ต้องการเป็นตัวเลข(Column1) ต้องปรับปรุงโค้ดหรือตั้งค่าอย่างไรครับ
2022-08-02_10-54-52.jpg

Code: Select all


Private Sub CommandButton1_Click()
' ตกลง
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set tbl = ws.ListObjects("Add2MDB_TB")

Dim lRow As ListRow
Set lRow = tbl.ListRows.Add
With lRow
.Range(1) = Me.ComboBox1.Text
End With

End Sub

Private Sub UserForm_Initialize()
    Me.ComboBox1.ColumnWidths = "0pt;80pt"
End Sub

Re: VBA Combobox มี 2 คอลัมน์ ต้องการดึงค่าจากคอลัมน์ที่กำหนด ต้องปรับปรุงโค้ดอย่างไรครับ

Posted: Tue Aug 02, 2022 11:54 am
by 10idlnw
ตอนนี้ผมลองทำได้แล้วครับ โดยเปลี่ยนจาก
.Range(1) = Me.ComboBox1.Text
เป็น
.Range(1) = Me.ComboBox1.Column(0)

Re: VBA Combobox มี 2 คอลัมน์ ต้องการดึงค่าจากคอลัมน์ที่กำหนด ต้องปรับปรุงโค้ดอย่างไรครับ

Posted: Tue Aug 02, 2022 12:41 pm
by 10idlnw
ตอนนี้ผมติดปัญหา เมื่อผมเลือกในช่อง A พอกดค้นหา ในช่อง B จะแสดงเป็นตัวเลขครับ แต่ ผมต้องการดึงเดือนที่เก็บเป็นตัวเลขใน DataSheet(ช่อง A) เมื่อเลือกแล้วกดค้นหาให้มาแสดงในช่อง B เป็นชื่อเดือนภาษาไทยตามภาพ ต้องปรับโค้ดอย่างไรครับ
2022-08-02_12-26-10.jpg

Code: Select all

Private Sub CmbSearch_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("DataSheet")
Set tbl = ws.ListObjects("Add2MDB_TB")

Dim selectM As Long
selectM = CbbS_NumM.Text
Dim lRow As Long
lRow = tbl.Range.Rows.Count

For i = 2 To lRow
    If tbl.Range.Cells(i, 1).Value = selectM Then
        Me.CbbSearch.Text = tbl.Range.Cells(i, 1).Value
    End If
Next i
End Sub

Re: VBA Combobox มี 2 คอลัมน์ ต้องการดึงค่าจากคอลัมน์ที่กำหนด ต้องปรับปรุงโค้ดอย่างไรครับ

Posted: Tue Aug 02, 2022 4:57 pm
by 10idlnw
แก้ไขปัญหานี้ได้แล้วครับ ใช้ match + index ครับ ลองไปลองมาได้เลยครับ