: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

ต้องการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
AirkArk
Member
Member
Posts: 6
Joined: Sun Oct 14, 2018 11:00 am

ต้องการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ครับ

#1

Post by AirkArk »

สวัสดีครับ อยากจะสอบถามเกี่ยวกับการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ตอนรันแรกๆ รันได้ครับ แต่พอปิด-เปิดเครื่องใหม่ปรากฎว่าขึ้น error 91 ครับ รบกวนช่วยดูให้หน่อยได้ไหมครับว่าผมเขียน Code ผิดตรงไหน แล้วควรแก้ไขอย่างไรครับ

Code: Select all

Private Sub CommandButton5_Click()
    Dim findvalue As Range
Set findvalue = Sheets("RegisterList").Range("a:a").Find(What:=Me.TextBox23.Value, LookIn:=xlFormulas, LookAt:=xlWhole)
    Me.TextBox1.Value = findvalue.Offset(0, 3).Value
    Me.TextBox2.Value = findvalue.Offset(0, 4).Value
    Me.CommandBox1.Value = findvalue.Offset(0, 5).Value
    Me.TextBox3.Value = findvalue.Offset(0, 6).Value
    Me.TextBox21.Value = findvalue.Offset(0, 7).Value
    Me.CommandBox11.Value = findvalue.Offset(0, 10).Value
    Me.CommandBox2.Value = findvalue.Offset(0, 11).Value
    Me.TextBox17.Value = findvalue.Offset(0, 12).Value
    Me.TextBox20.Value = findvalue.Offset(0, 13).Value
    Me.TextBox10.Value = findvalue.Offset(0, 14).Value
    Me.TextBox11.Value = findvalue.Offset(0, 15).Value
    Me.TextBox12.Value = findvalue.Offset(0, 16).Value
    Me.CommandBox4.Value = findvalue.Offset(0, 18).Value
    Me.TextBox8.Value = findvalue.Offset(0, 19).Value
    Me.ComboBox1.Value = findvalue.Offset(0, 20).Value
    Me.TextBox18.Value = findvalue.Offset(0, 21).Value
    Me.ComboBox2.Value = findvalue.Offset(0, 22).Value
    Me.TextBox19.Value = findvalue.Offset(0, 23).Value
    Me.TextBox22.Value = findvalue.Offset(0, 24).Value
    Me.TextBox13.Value = findvalue.Offset(0, 25).Value
    Me.TextBox14.Value = findvalue.Offset(0, 26).Value
    Me.TextBox9.Value = findvalue.Offset(0, 27).Value
    Me.CommandBox5.Value = findvalue.Offset(0, 28).Value
    Me.CommandBox6.Value = findvalue.Offset(0, 29).Value
    Me.CommandBox7.Value = findvalue.Offset(0, 30).Value
    Me.CommandBox8.Value = findvalue.Offset(0, 31).Value
    Me.TextBox5.Value = findvalue.Offset(0, 32).Value
    Me.TextBox6.Value = findvalue.Offset(0, 33).Value
    Me.TextBox7.Value = findvalue.Offset(0, 34).Value
    Me.CommandBox12.Value = findvalue.Offset(0, 41).Value
    Me.CommandBox13.Value = findvalue.Offset(0, 42).Value
End sub
ขอบคุณล่วงหน้าครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ต้องการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ครับ

#2

Post by snasui »

:D ผมลองเปิดมาก็ไม่พบปัญหาอะไรครับ

กรณีมีหลาย Procedure ใน VBAProject กรุณาอธิบายว่าเป็นที่ UserForm ชื่ออะไร ติดขัดที่ Procedure ใดจะได้เข้าถึงปัญหาได้โดยไวครับ

สิ่งที่พบเบื้องต้นใน Code คือมี Procedure ว่างเปล่าจำนวนมากที่เกิดจากการ Double Click ปุ่มตอน Design หากไม่ใช้ควรลบทิ้งไปจะได้เข้าถึง Code ที่ต้องการใช้ได้ง่ายขึ้น นอกจากนี้ยังพบว่ามี ComboBox ซ้อนกันหลายอันตำแหน่งด้านขวาของ Label พื้นที่เดิม, พื้นที่ใหม่ของ UserForm1 ลองลบ ComboBox ที่ซ้อนอยู่บนสุดดูจะเข้าใจครับ
AirkArk
Member
Member
Posts: 6
Joined: Sun Oct 14, 2018 11:00 am

Re: ต้องการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ครับ

#3

Post by AirkArk »

ขอบคุณมากครับ สำหรับคำแนะนำ
Userform ที่พบปัญหาคือ Userform1 ครับ เกี่ยวกับปุ่ม Search คือเมื่อผมใส่เลข Item no. ในช่อง Textbox23 แล้วกดปุ่ม Search ปรากฎว่าขึ้น Code error "91" Object variable or With block variable not set. ที่ code Me.TextBox1.Value = findvalue.Offset(0, 3).Value ไปจนถึง Me.CommandBox13.Value = findvalue.Offset(0, 42).Value ครับ
astalavista
Member
Member
Posts: 48
Joined: Tue Oct 03, 2017 11:05 am

Re: ต้องการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ครับ

#4

Post by astalavista »

ลองเปลี่ยนตรง findvalue ตรง LookIn เป็น LookIn:=xlValues ดูครับ

Code: Select all

Set findvalue = Sheets("RegisterList").Range("a:a").Find(What:=Me.TextBox23.Value, LookIn:=xlValues, LookAt:=xlWhole)
AirkArk
Member
Member
Posts: 6
Joined: Sun Oct 14, 2018 11:00 am

Re: ต้องการเรียกข้อมูล (Search) โดยใช้ Commandbotton เพื่อแสดงใน Userform ครับ

#5

Post by AirkArk »

astalavista wrote: Tue Oct 16, 2018 10:03 am ลองเปลี่ยนตรง findvalue ตรง LookIn เป็น LookIn:=xlValues ดูครับ

Code: Select all

Set findvalue = Sheets("RegisterList").Range("a:a").Find(What:=Me.TextBox23.Value, LookIn:=xlValues, LookAt:=xlWhole)
ทำได้แล้วครับ แก้ตามที่คุณ astalavista บอก แล้วนำไปปรับใช้กับการอัพเดตข้อมูลทับไปในแถวเดิมด้วยครับ
ขอบคุณทั้งอาจารย์ snasui และคุณ astalavista มากครับ

ปล.ผมแนบไฟล์ที่แก้ไขและปรับปรุงไว้นะครับ
You do not have the required permissions to view the files attached to this post.
Post Reply