: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

vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
trin
Member
Member
Posts: 3
Joined: Mon Jan 23, 2017 4:57 pm

vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#1

Post by trin »

มือใหม่ขอสอบถามครับผมต้องการทำฟอร์มค้นหาข้อมูลในชีตแล้วให้ข้อมูลที่ค้นหาทั้งหมดที่มีในคำค้น มาแสดงทั้งแถว
Image
ตามใน code ต้องการให้พิมพ์คำค้นเป็นชื่อหรือนามสกุลใน TextBox1 แล้วให้แสดงผลการค้นหาใน TextBox2 ต้องเขียนคำสั่งอย่างไรครับ
ตอนนี้ผลยังแสดงอยู่ที่ชีต data อยู่เลยครับ ตามไฟล์ที่แนบครับ
ค้นหาหมายเลข.xlsm
(19.11 KiB) Downloaded 30 times

Code: Select all

Private Sub TextBox1_Change()
Sheets("data").Range("$A$2:$B$" & Range("C65536").End(xlUp).Row).AutoFilter Field:=2, Criteria1:="*" & TextBox1.Value & "*"
End Sub

Private Sub TextBox2_Change()

End Sub
	
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: ิvba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#2

Post by snasui »

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

Code: Select all

Private Sub TextBox1_Change()
    Dim data as Range
    On Error Resume Next
    With Sheets("data")
        Set data = .Range("a2", .Range("b" & .Rows.Count).End(xlUp))
        If Application.CountIf(data, TextBox1.Text) > 0 Then
            TextBox2.Text = Application.VLookup(TextBox1.Text, data, 2, 0)
        Else
            TextBox2.Text = ""
        End If
    End With
End Sub
trin
Member
Member
Posts: 3
Joined: Mon Jan 23, 2017 4:57 pm

Re: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#3

Post by trin »

ลองปรับ code ตามอาจารย์แล้ว คราวนี้พอพิมพ์คำค้นในช่อง Textbox1 แล้วเหมือนโปรแกรมไม่ยอมค้นหาให้เลยครับ ไม่มีข้อความอะไรขึ้นที่ Textbox2 เลย ผมเอาไฟล์แนบมาด้วยแล้วครับ ผมใส่ code ผิดตรงใหนบ้างหรือเปล่า รบกวนช่วยชี้แนะด้วยครับ (มือใหม่จริงๆ)

Code: Select all

'Êͧá¶Ç¢éÒ§ÅèÒ§à»ç¹ code à¡èÒ
'Private Sub TextBox1_Change()
'Sheets("data").Range("$A$2:$B$" & Range("C65536").End(xlUp).Row).AutoFilter Field:=2, Criteria1:="*" & TextBox1.Value & "*"
End Sub
Private Sub TextBox1_Change()
    Dim data As Range
    On Error Resume Next
    With Sheets("data")
        Set data = .Range("a2", .Range("b" & .Rows.Count).End(xlUp))
        If Application.CountIf(data, TextBox1.Text) > 0 Then
            TextBox2.Text = Application.VLookup(TextBox1.Text, data, 2, 0)
        Else
            TextBox2.Text = ""
        End If
    End With
End Sub
Attachments
img1234.png
img1234.png (130.42 KiB) Viewed 375 times
ค้นหาหมายเลข.xlsm
(22.53 KiB) Downloaded 19 times
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: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#4

Post by snasui »

:D คำค้นที่ว่านั้นคือค่าใดบ้างครับ

ตาม Code นั้นคอลัมน์ A จะต้องเป็น Text ทั้งหมดจึงจะนำไปค้นหาได้ครับ

ในไฟล์ที่แนบมา A2 ไม่ใช่ Text แต่เป็น Number จะต้องทำให้เป็น Text เหมือนเซลล์อื่น ๆ ครับ
trin
Member
Member
Posts: 3
Joined: Mon Jan 23, 2017 4:57 pm

Re: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#5

Post by trin »

ขอบคุณครับอาจารย์ ผมได้ปรับที่ชีตของexcel ให้เป็น text ทั้งหมดแล้วสามารถค้นหาได้โดยพิพม์เลขสมาชิกที่ Textbox1 ถ้าพิมพ์ถูก ชื่อและนามสกุลของสมาชิกก็จะมาแสดงที่ Textbox1
****
แต่ความต้องการไม่ใช่แบบนี้ครับ ที่ต้องการคือ สมมุติว่ามีสมาชิกมาติดต่อ แต่เขาจำหมายเลขสมาชิกตัวเองไม่ได้ เลยต้องการค้นหาจากชื่อหรือนามสกุล โดยผู้ใช้ excel จะค้นด้วยการพิมพ์ชื่อหรือนามสกุล แล้วให้ Textbox2 แสดงทุกแถวที่มีคำ ในคำค้นนั้นๆ ตัวอย่างเช่น สมาชิกชื่ออำนาจ พิมพ์คำว่า อำนาจ ลงในช่อง Textbox1 แล้วช่อง Textbox2 จะแสดงสมาชิกทุกคนที่ชื่อหรือนามสกุลมีคำว่า "อำนาจ" อยู่
(ก็คือจะค้นหาหมายเลขสมาชิกจากชื่อหรือนามสกุลก็ได้) โดย Box ที่จะแสดงจะต้องแสดงหมายเลขสมาชิกกับชื่อและนามสกุล คล้ายกับรูปที่ผมแนบมาครับ
Attachments
23.png
23.png (64.57 KiB) Viewed 365 times
ค้นหาหมายเลข.xlsm
(21.14 KiB) Downloaded 38 times
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: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#6

Post by snasui »

:D การทำเช่นนั้นไม่จำเป็นต้องใช้ VBA ให้ยุ่งยาก ใช้สูตรก็เพียงพอแล้วครับ

หากจะใช้ VBA จำเป็นต้องปรับมาเองก่อนเสมอ ติดตรงไหนค่อยถามกันต่อครับ
kedsinee
Member
Member
Posts: 2
Joined: Sat Feb 11, 2017 10:40 am

Re: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#7

Post by kedsinee »

สอบถามการใส่สูตร
ดิฉันมีปัญหาเกี่ยวกับการใช้สูตรนะค่ะ พอดีดิฉันมีไฟล์งานตัวนึงมาทำซึ่งโจทย์ที่ได้คือการคำนวณหาคะแนนโดยมีเงื่อนไขที่ว่า
หากทำยอดได้ 100%เต็ม จะได้คะแนนอยู่ที่ 30 คะแนน แต่ถ้ายอดที่ทำได้ตั้งแต่80%ลงมาจะไม่มีคะแนน ซึ่งโจทย์จะอยู่ที่ว่าถ้าทำได้อยู่ในช่วง 80-100 % จะได้คะแนนเท่าไหร่ เช่น ได้ 78% เราจะใช้สูตรแบบไหนในการคำนวณค่ะ
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: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#8

Post by snasui »

:D คุณ kedsinee กรุณาตั้งกระทู้ใหม่เนื่องจากว่าเป็นปัญหาที่ไม่เกี่ยวกับกระทู้นี้

การตั้งกระทู้ดูที่หัวข้อโปรดทราบหัวข้อที่ 4 ด้านบนครับ :roll:
pong2532
Member
Member
Posts: 29
Joined: Wed Jun 29, 2016 4:14 pm
Excel Ver: 2007,2016

Re: vba ค้นหาข้อความแล้วให้แสดงผลใน textbox

#9

Post by pong2532 »

ลองใช้คำสั่ง Find ดูครับ แล้วเปลี่ยนจาก Textbox2 เป็น Listbox แทน
Post Reply