: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 index match แล้ว error

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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: รัน code index match แล้ว error

Re: รัน code index match แล้ว error

#5

by sutham » Fri Apr 20, 2018 7:43 am

เข้าใจแล้วครับ
ขอบคุณครับ

Re: รัน code index match แล้ว error

#4

by snasui » Fri Apr 20, 2018 6:22 am

sutham wrote: Fri Apr 20, 2018 6:13 am ใช้งานได้แล้วครับ
ขอบคุณครับ
แต่อยากจะทราบว่าเพราะเหตุใด code ดังกล่าว จึง error
:D ที่ Error เพราะว่าค่าใน TextBox เป็น Text ส่วนค่าใน Worksheet เป็น Number จำเป็นจะต้องแปลง Text ให้เป็น Number เสียก่อนจึงจะ Match กันได้ สังเกตว่าผมจะใช้ Cint เพื่อแปลงข้อมูลใน TextBox ให้เป็น Integer ครับ

การนำข้อมูลมา Match กันให้ตรวจสอบ Data Type ก่อนเสมอว่าเป็นประเภทเดียวกันหรือไม่ การกำหนดรูปแบบให้มี 0 นำหน้าไม่ได้ช่วยให้เปลี่ยน Data Type แต่อย่างใด ควรอ่านและทำความเข้าใจ Code ประกอบจะได้ทราบว่ามีประเด็นอะไรเกี่ยวข้องกับงานลักษณะนี้บ้างที่จะต้องคำนึงถึงครับ

Re: รัน code index match แล้ว error

#3

by sutham » Fri Apr 20, 2018 6:13 am

ใช้งานได้แล้วครับ
ขอบคุณครับ
แต่อยากจะทราบว่าเพราะเหตุใด code ดังกล่าว จึง error

Re: รัน code index match แล้ว error

#2

by snasui » Fri Apr 20, 2018 5:38 am

:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim sh As Worksheet
    Set sh = Sheets("Sheet1")
    With WorksheetFunction
        If .CountIf(sh.Range("A:A"), CInt(0 & TextBox1.Value)) Then
            TextBox2.Value = .Index(sh.Range("A:E"), _
                .Match(CInt(TextBox1.Value), sh.Range("A:A"), 0), 5)
        Else
            TextBox2.Value = ""
            MsgBox "Not found."
        End If
    End With
End Sub

รัน code index match แล้ว error

#1

by sutham » Fri Apr 20, 2018 12:33 am

เมื่อคีย์ 000002 ในช่องเลขทะเบียนใน userform1 เมื่อกดปุ่ม ตกลง เพื่อให้ค้นหาข้อมูลที่อยู่ในคอลัมน์ E ของ sheet1 มาแสดงในช่อง textbox2 ซึ่งเป็นชื่อหนังสือ พอกดปุ่ม ตกลง แล้ว ขึ้น error
code ที่ผมเขียน คือ

Code: Select all

Private Sub CommandButton1_Click()
TextBox2.Value = WorksheetFunction.Index(Worksheets("Sheet1").Range("A:E"), WorksheetFunction.Match(TextBox1.Value, Worksheets("Sheet1").Range("A:A"), 0), 5)
End Sub
ขอคำแนะนำด้วยครับ
ขอบคุณครับ
Attachments
สูตร index match error in vba.xlsm
(17.86 KiB) Downloaded 6 times

Top