Page 1 of 1
นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Sun Sep 04, 2016 9:57 pm
by KITIPONG
เรียนอาจารย์และผู้รู้ทุกท่าน
ผมต้องการเขียน code ให้ combo box รับข้อมูลจาก cell เพื่อเข้าเป็นตัวเลือกใน combo box ครับ โดยจำนวณข้อมูลสามารถเปลี่ยนแปลงได้เช่น A-C,A-G เป็นต้น
Code ที่ผมเขียนไว้ประมาณนี้ครับ ยังไม่สามารถ run ได้ครับ
Code: Select all
Private Sub major_cbbox_DropButtonClick()
Dim m As Long
Dim x As String
Do
m = m + 1
Loop Until Cells(m, 1) = ""
m = Cells(Rows.Count, 1).End(xlUp).Row + 1
x = Cells(m, 1).Value
major_cbbox.List = x
End Sub

- pic1.png (32.53 KiB) Viewed 195 times
ขอบคุณครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Mon Sep 05, 2016 7:31 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Private Sub major_cbbox_DropButtonClick()
Dim m As Long
Dim x As String
Do
m = m + 1
'm = Cells(Rows.Count, 1).End(xlUp).Row + 1
x = Cells(m, 1).Value
major_cbbox.AddItem x
Loop Until Cells(m, 1) = ""
End Sub
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Tue Sep 06, 2016 12:55 pm
by KITIPONG
ขอบคุณอาจารย์มากครับ สามารถใช้งานได้ตรงความต้องการ แต่ผมเจอปัญหาว่ามันจะขึ้นซ้ำเมื่อคลิกที่ combo block ในครั้งต่อมา พอจะมีวิธีแก้ไหมครับ

- pic2.jpg (80.3 KiB) Viewed 180 times
ขอบคุณครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Tue Sep 06, 2016 7:09 pm
by snasui

ไม่ควรใช้ Event
major_cbbox_DropButtonClick ในการเพิ่มรายการของ ConboBox เพราะมันจะเพิ่มรายการเมื่อมีการคลิก ควรจะเพิ่มรายการทีเดียวหรือเมื่อต้องการ Update เท่านั้น ปกติจะกำหนดให้แสดงรายการใน ComboBox ด้วย Event
UserForm_Initialize หรืออื่นๆ ครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Thu Sep 08, 2016 9:01 pm
by KITIPONG
ขอบคุณอาจารย์มากครับ ตอนนี้สามารถใช้ได้ตามต้องการแล้วครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Sun Sep 11, 2016 12:38 pm
by KITIPONG
สอบถามเพิ่มเติมนะครับ คือผม เพิ่ม combo box ไปอีก 1 box เพื่อใช้งานเหมือนกับอันแรก แต่ไม่สามารถใช้ได้ครับ
[img]

- pic3.png (63.64 KiB) Viewed 147 times
[/img]
โดยเขียน code เพิ่มไปดังนี้ครับ
Code: Select all
Private Sub UserForm_Initialize()
Dim a As Long
Dim b As String
If major_cbbox2 = "" Then
Do
a = a + 1
b = Cells(a, 2).Value
If b <> "" Then
major_cbbox2.AddItem b
End If
Loop Until Cells(a, 2) = ""
End If
End Sub
แต่ไม่สามารถ run ได้ครับ
ขอบคุณครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Sun Sep 11, 2016 2:10 pm
by snasui

ตัวอย่างการปรับ Code ครับ
Code: Select all
Private Sub UserForm_Initialize()
Dim m As Long
Dim x As String
Dim b As Long
If major_cbbox = "" Then
Do
m = m + 1
x = Cells(m, 1).Value
b = Cells(m, 2).Value
If x <> "" Then
major_cbbox.AddItem x
major_cbbox2.AddItem b
End If
Loop Until Cells(m, 1) = ""
End If
End Sub
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Sun Sep 11, 2016 4:16 pm
by KITIPONG
เรียนอาจารย์ ครับ ผมลอง code พบว่า เมื่อ จำนวณ column 1,2 ไม่ทำกัน จะเกิดตัวเลขที่ 0 ที่ไม่ได้ต้องการขึ้นมาครับ พอจะมีวิธีแก้ไขไหมครับ
[img]

- pic4.jpg (125.22 KiB) Viewed 141 times
[/img]
ขอบคุณครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Sun Sep 11, 2016 4:21 pm
by snasui

สามารถใช้ If เข้ามาช่วยได้ โดยตรวจสอบว่ามีข้อมูลหรือไม่ หากมีจึงค่อย Add เข้าไป ลองปรับปรุงมาเองดูก่อน ติดตรงไหนค่อยถามกันต่อครับ
Re: นำข้อมูลจาก cell เข้า combo box (VBA)
Posted: Sun Sep 11, 2016 9:16 pm
by KITIPONG
เรียน อาจารย์
ผมใช้ if ช่วยตามที่อาจารย์แนะนำ ได้ผลตามที่ต้องการแล้วครับ ขอบคุณมากครับ
ขอแสดงความนับถือ