สวัสดีครับอาจารย์
รบกวนอีกแล้วครับ
จากการกำหนดค่าข้ามเวิร์กบุค มันมีปัญหาคือ ถ้าเวิร์กบุคที่เราอ้างถึงเราไม่ได้เปิดใช้งานก็เกิดdebug คือเวิร์กบุคที่ผมอ้างถึงเป็นที่ที่ผมส่งข้อมูลที่บันทึกไปเก็บไว้ ไม่ต้องการเปิด
แต่อยากให้แค่ดึงข้อมูลมาใช้ (ซึ่งได้ใช้ในสิ่งที่อาจารย์สอนที่ผ่านมา ในการบันทึก ค้นหา แก้ไขข้อมูลที่เก็บข้ามเวิร์กบุคได้แล้วครับ)
ListBox1.RowSource = "'[data.xls]tblcustom'!A:D" มันแสดงค่าในบรรทัดนี้ว่าListBox1.RowSource = ""(ListBox1.RowSource = "'[data.xls]tblcustom'!A:D"=FALSE)
ผมคิดว่าต้องไปสั่งให้เวิร์บุคที่กำหนดตอบสนองก่อน
Private Sub UserForm_Initialize()
Dim mydata AS Range
ActiveWorkbook("data.xls").Worksheets("tblcustom").Select
With Workbooks("data.xls").Worksheets("tblcustom").Activate
Set myData = Workbooks("data.xls").Worksheets("tblcustom").Range("A:Z")
ListBox1.RowSource = mydata
คือคิดว่า 1.ต้องสั่งให้มันรู้ก่อนว่าเวิร์กบุคไหน 2.จะเอาอะไร 3.จะให้ไปแสดงที่ไหน
แต่Debug ครับ
ความตั้งใจของผมที่จะเรียนรู้คือต่อไป สมมติว่าเราดึงข้อมูลมาอยู่ในListBox ผมก็จะลองใช้คำสั่งร่วมกับFilter เพื่อกำหนดการกรองค้นหาตามฟิล์ที่ผู้ใช้กำหนดข้ามเวิร์กบุค เช่นหาจากชื่อ หรือเลขบัตร
แล้วค่าข้อมูลในListbox ก็แสดงค่าตามการกำหนด Filter แล้วพอเลือกรายการในListBox ก็แสดงข้อมูลของรายนั้นออกมาบนหน้าฟอร์ม
ประมาณว่าอยากดูหนี้ที่ไม่เกิน50000บาทก็แสดงในList เลย สนใจรายไหนในกลุ่มนั้นก็คลิ๊กเลือก ข้อมูลรายนั้นก็โผล่เลย!
ซึ่งตอนนี้ใช้ code = Application.Match(.Range("F4"), .Range("A:A"), 0)ที่อาจารย์สอนดึงข้อมูลมาแสดงในlistBox และสามารถเลือกรายการและแสดงผลได้แล้วครับ
แต่ตอนนี้ได้เป็นรายคน

ก็จะค่อยๆเรียนรู้และทำไปครับ
ขอบคุณมากครับที่คอยแนะนำ ขอบคุณอาจารย์ที่อดทนกับผม