:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สอบถาม code vba ใน combobox

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
natthaporn
Member
Member
Posts: 187
Joined: Sun Jul 15, 2012 10:54 pm

สอบถาม code vba ใน combobox

#1

Post by natthaporn »

ดิฉันต้องการดึงค่าจาก sheet : Data, column : G มาวางไว้ที่ tbox1 และ
ดึงค่าจาก sheet : Data, column : H มาวางไว้ที่ tbox2
ตามวันที่ที่ระบุไว้ที่ cboDay , cboMonth และ cboYear

กล่าวคือ ที่ tbox1 และ tbox2 เป็นได้ทั้งกรณีรับค่า และส่งค่า

โดยได้เขียน code ตามนี้คะ

Code: Select all

Private Sub cboDay_Change()
Dim mRange As Range
    'On Error Resume Next
    Set mRange = Sheet2.Range("i1")
    mRange = Me.cboMonth.Text & "/" & Me.cboDay.Text & "/" & Me.cboYear.Text
    
    With Application.WorksheetFunction
        Me.tbox1.Value = .VLookup(mRange.Value, Sheet2.Range("Table"), 6, False)
    End With
End Sub

Private Sub cboMonth_Change()
Dim mRange As Range
    'On Error Resume Next
    Set mRange = Sheet2.Range("i1")
    mRange = Me.cboMonth.Text & "/" & Me.cboDay.Text & "/" & Me.cboYear.Text
    
    With Application.WorksheetFunction
        Me.tbox1.Value = .VLookup(mRange.Value, Sheet2.Range("Table"), 6, False)
    End With
End Sub

Private Sub cboYear_Change()

  Dim mRange As Range
    'On Error Resume Next
    Set mRange = Sheet2.Range("i1")
    mRange = Me.cboMonth.Text & "/" & Me.cboDay.Text & "/" & Me.cboYear.Text
    
    With Application.WorksheetFunction
        Me.tbox1.Value = .VLookup(mRange.Value, Sheet2.Range("Table"), 6, False)
    End With
End Sub
แต่ code error คะ รบกวนแนะนำด้วยคะ
ขอบคุณคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม code vba ใน combobox

#2

Post by snasui »

:D ตัวอย่างการปรับ Code เฉพาะ cboDay (วันที่) สำหรับ เดือน และ ปี ก็ให้ปรับลักษณะนี้ ครับ

Code: Select all

Private Sub cboDay_Change()
    Dim mRange As Range
    On Error Resume Next
    Set mRange = Sheet2.Range("i1")
    If Me.cboMonth.Text <> "" And Me.cboDay.Text <> "" And Me.cboYear.Text <> "" Then
        mRange = Me.cboMonth.Text & "/" & Me.cboDay.Text & "/" & Me.cboYear.Text
    Else
        Exit Sub
    End If
    With Application.WorksheetFunction
        Me.tbox1.Value = .VLookup(mRange.Value, Sheet2.Range("Table"), 6, False)
    End With
End Sub
Last edited by snasui on Mon Jan 26, 2015 8:40 pm, edited 1 time in total.
Reason: เพิ่มเติมข้อความ
natthaporn
Member
Member
Posts: 187
Joined: Sun Jul 15, 2012 10:54 pm

Re: สอบถาม code vba ใน combobox

#3

Post by natthaporn »

อาจารย์คะ code ไม่ error แล้ว แต่ปรากฏว่าเมื่อเลือกวันที่แล้วไม่มีค่าแสดงที่ tbox1 คะ
ขอบคุณคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม code vba ใน combobox

#4

Post by snasui »

:shock: ปรับให้ครบทุก Control ทั้งที่เป็น วันที่ เดือน ปีจึงจะ Lookup กันได้ครับ

Code ที่ผมเขียนมานั้นเป็นเพียงตัวอย่างให้เห็นว่าควรปรับเช่นไรเท่านั้นครับ
natthaporn
Member
Member
Posts: 187
Joined: Sun Jul 15, 2012 10:54 pm

Re: สอบถาม code vba ใน combobox

#5

Post by natthaporn »

อาจารย์คะดิฉันทำตามที่อาจารย์แนะนำแล้วคะ แต่ก็ยังไม่แสดงค่า ดิฉันลองใส่ comment ไว้ที่
on error resume next" ปรากฎว่า code error ที่

Code: Select all

Me.tbox1.Value = .VLookup(mRange.Value, Sheet2.Range("Table"), 6, False)
ดิฉันพยายามหาสาเหตุ เช่น ค่าของ mRange และค่าของ Tabel แต่ก็หาไม่เจอคะ

ขอรบกวนด้วยนะคะ ขอบคุณคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม code vba ใน combobox

#6

Post by snasui »

:D ปรับเป็นด้านล่าง โดยลบ .value ออก หรือใช้ .value2 แทน .vlaue ครับ

Me.tbox1.Value = .VLookup(mRange, Sheet2.Range("Table"), 6, False)
natthaporn
Member
Member
Posts: 187
Joined: Sun Jul 15, 2012 10:54 pm

Re: สอบถาม code vba ใน combobox

#7

Post by natthaporn »

ได้ผลลัพธ์ตามที่ต้องการแล้วคะ ขอขอบคุณอาจารย์มากคะ
belmont
Member
Member
Posts: 7
Joined: Wed Jul 22, 2015 6:26 pm

Re: สอบถาม code vba ใน combobox

#8

Post by belmont »

:thup: :thup: :thup: :thup:
Post Reply