: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

ใช้ Vlookup ใน USER FORM

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

ใช้ Vlookup ใน USER FORM

#1

Post by titus2014 »

เรียน อาจารย์ที่เคารพ

พอดีผมติดปัญหาเกี่ยวกับการ ใช้ Vlookup ใน USER FORM

ใน USER FROM ให้ใส่รหัสกล่องสินค้า
ในช่อง TEXT BOX รายการให้โชว์สินค้าที่ใช้รหัสกล่องนั้น โดยไฟล์ข้อมูลหลักอยู่ที่ Sheet "DATA"
ผมสามารถเขียนอย่างไรได้บางครับ
ตอนนี้ผมเขียนออกมาเป็นแบบด้านล่าง

Private Sub txtlist_Change()
With Application.WorksheetFunction
txtlist.Value = .VLookup(Sheets("DATA").Range("NUM"), Sheets("DATA").Range("LIST"), 2, False)
End With
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: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#2

Post by snasui »

:D ที่เขียนมาเองแล้วนั้นติดปัญหาอะไรแจ้งมาด้วยครับ

สำหรับการโพสต์ Code ให้แสดงเป็น Code ดูตัวอย่างจากกระทู้นี้ เพื่อจะได้สะดวกในการอ่านและ Copy ไปทดสอบครับ viewtopic.php?f=3&t=1187
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#3

Post by titus2014 »

ขออภัยครับ

Code: Select all

Private Sub txtlist_Change()
With Application.WorksheetFunction
txtlist.Value = .VLookup(Sheets("DATA").Range("NUM"), Sheets("DATA").Range("LIST"), 2, False)
End With
End Sub
แต่พอป้อนค่าเข้าไปที่ ช่อง txtcode ในช่อง txtlist ไม่โชว์ข้อมูลที่ต้องการครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#4

Post by snasui »

:D ค่อย ๆ ถามตอบกันไปนะครับ

ตัวอย่าง Code หากว่าผู้ใช้งานกรอกรหัสกล่องแล้วคลิกปุ่มบันทึก หากมีรหัสนั้นก็จะแสดงรายการมาที่ช่องรายการรหัสสินค้า

Code: Select all

Private Sub CommandButton1_Click()
    With Application.WorksheetFunction
        txtlist.Value = .VLookup(Val(txtcode.Text), Sheets("DATA").Range("A2:C11"), 2, False)
    End With
End Sub
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#5

Post by titus2014 »

snasui wrote::D ค่อย ๆ ถามตอบกันไปนะครับ

ตัวอย่าง Code หากว่าผู้ใช้งานกรอกรหัสกล่องแล้วคลิกปุ่มบันทึก หากมีรหัสนั้นก็จะแสดงรายการมาที่ช่องรายการรหัสสินค้า

Code: Select all

Private Sub CommandButton1_Click()
    With Application.WorksheetFunction
        txtlist.Value = .VLookup(Val(txtcode.Text), Sheets("DATA").Range("A2:C11"), 2, False)
    End With
End Sub
ทดลองแล้วไม่ขึ้นครับ สร้างปุ่มเพิ่มแล้วลองใส่โค๊ดนี้ ในช่อง รายการสินค้าไม่โชว์ตามที่กำหนดไว้ครับ
Last edited by titus2014 on Tue Aug 26, 2014 12:19 pm, edited 1 time in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#6

Post by snasui »

:D ก่อนโพสต์ฺผมทดลองแล้วสามารถใช้ได้ตามที่ผมโพสต์ครับ
snasui wrote:หากว่าผู้ใช้งานกรอกรหัสกล่องแล้วคลิกปุ่มบันทึก หากมีรหัสนั้นก็จะแสดงรายการมาที่ช่องรายการรหัสสินค้า
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#7

Post by titus2014 »

snasui wrote::D ก่อนโพสต์ฺผมทดลองแล้วสามารถใช้ได้ตามที่ผมโพสต์ครับ
snasui wrote:หากว่าผู้ใช้งานกรอกรหัสกล่องแล้วคลิกปุ่มบันทึก หากมีรหัสนั้นก็จะแสดงรายการมาที่ช่องรายการรหัสสินค้า

ขออภัยไม่ได้ลองให้ถี่ถ้วนครับ

ค่าที่จะแสดงก็ต่อเมื่อเรา กดปุ่มบันทึก
แต่ผมอยากให้แสดงค่าโดยไม่ต้องกดปุ่มใดๆเลยครับ
เหมือนเราใช้ Vlookup ปกติ แค่ป้อนค่าที่ช่อง รหัสกล่อง ก็แสดง

เพราะว่าปุ่มบันทึีก ผมจะส่งค่า ทั้งหมดใน form ไปเก็บไว้ใน Excel Sheet 1 อีกทีครับ

ผมลองดูตัวอย่างเก่าในบอร์ด
ลองใส่โค๊ดนี้

Code: Select all

Private Sub txtcode_Change()
Set myRange = Worksheets("DATA").Range("A2:C11")
    txtlist.Value = Application.WorksheetFunction.VLookup(CLng(txtcode), myRange, 2, False)
End Sub
ได้ตามความต้องการครับ แต่ RUN TIME ERROR "13" ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#8

Post by snasui »

:D คุณสามารถเพิ่มปุ่มสำหรับการตรวจสอบว่าค่าที่คี่ย์มีอยู่หรือไม่ หากมีก็ให้แสดงลงใน Oject ต่าง ๆ สำหรับปุ่มบันทึกเอาไว้บันทึกข้อมูล

การใช้ Vlookup ในทุกการเปลียนแปลงใน TextBox แม้คีย์เพียงอักขระเดียวก็ตรวจสอบทันที หากต้องการเช่นนั้นก็ทำได้โดยการใช้ Change Event ตาม Code ที่ยกมาเป็นตัวอย่าง

หากต้องการไม่ให้เกิด Error ก็ควรใช้การดัก Error เข้าไปช่วย เช่นวาง Code on error resume next เอาไว้ก่อน Set myRange ครับ
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#9

Post by titus2014 »

snasui wrote::D คุณสามารถเพิ่มปุ่มสำหรับการตรวจสอบว่าค่าที่คี่ย์มีอยู่หรือไม่ หากมีก็ให้แสดงลงใน Oject ต่าง ๆ สำหรับปุ่มบันทึกเอาไว้บันทึกข้อมูล

การใช้ Vlookup ในทุกการเปลียนแปลงใน TextBox แม้คีย์เพียงอักขระเดียวก็ตรวจสอบทันที หากต้องการเช่นนั้นก็ทำได้โดยการใช้ Change Event ตาม Code ที่ยกมาเป็นตัวอย่าง

หากต้องการไม่ให้เกิด Error ก็ควรใช้การดัก Error เข้าไปช่วย เช่นวาง Code on error resume next เอาไว้ก่อน Set myRange ครับ
ขอบคุณมากครับ

อยากจะสอบถามเกี่ยวกับ เกี่ยวกับการประกาศตัวแปร

Set myRange = Worksheets("DATA").Range("A2:C11")

1. ในการเขียน VBA เราต้องมาประกาศตัวแปรภายใน ด้วยหรอครับ
เราไม่สามารถใช้ Range Name ที่เราตั้งชื่อ ได้เลยใช่ไหมครับ
2.อยากให้อาจาร์ยอธิบายเกี่ยวกับ
Val(txtcode.Text) ความหมายของ Val หน่อยครับ
ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#10

Post by snasui »

titus2014 wrote:อยากจะสอบถามเกี่ยวกับ เกี่ยวกับการประกาศตัวแปร

Set myRange = Worksheets("DATA").Range("A2:C11")

1. ในการเขียน VBA เราต้องมาประกาศตัวแปรภายใน ด้วยหรอครับ
เราจะประกาศตัวแปรหรือไม่ก็ได้ แต่การประกาศตัวแปรทำเพื่อจัดสรร Memory ให้ใช้อย่างเหมาะสม เพราะการไม่ประกาศตัวแปร โปรแกรมถือว่าตัวแปรนั้นเป็น Variant จะกิน Memory และหากใช้กับโปรแกรมขนาดใหญ่ที่เขียนอย่างซับซ้อนจะเกิด Memory ไม่พอใช้
titus2014 wrote:เราไม่สามารถใช้ Range Name ที่เราตั้งชื่อ ได้เลยใช่ไหมครับ
ไม่ใช่ครับ กรณีตั้งชื่อให้กับ Range Name แล้วเราสามารถอ้างเป็น Range("myRange") หาก myRange หมายถึงชื่อทีเราตั้งไว้ล่วงหน้า
titus2014 wrote:Val(txtcode.Text) ความหมายของ Val หน่อยครับ
Val เป็นการแปลง String ที่มีตัวเลขอยู่ด้วยให้เป็นตัวเลข ค่าที่คีย์ลงใน Object เช่น TextBox, ComboBox จะเป็น String การจะนำมาใช้คำนวณต่อปกติแล้วต้องแปลงให้เป็นตัวเลขเสียก่อน ซึ่ง Val ก็เป็นทางเลือกหนึ่งที่มักจะนำมาใช้ครับ
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#11

Post by titus2014 »

snasui wrote:
titus2014 wrote:อยากจะสอบถามเกี่ยวกับ เกี่ยวกับการประกาศตัวแปร

Set myRange = Worksheets("DATA").Range("A2:C11")

1. ในการเขียน VBA เราต้องมาประกาศตัวแปรภายใน ด้วยหรอครับ
เราจะประกาศตัวแปรหรือไม่ก็ได้ แต่การประกาศตัวแปรทำเพื่อจัดส Memory ให้ใช้อย่างเหมาะสม เพราะการไม่ประกาศตัวแปร โปรแกรมถือว่าตัวแปรนั้นเป็น Variant จะกิน Memory และหากใช้กับโปรแกรมขนาดใหญ่ที่เขียนอย่างซับซ้อนจะเกิด Memory ไม่พอใช้
titus2014 wrote:เราไม่สามารถใช้ Range Name ที่เราตั้งชื่อ ได้เลยใช่ไหมครับ
ไม่ใช่ครับ กรณีตั้งชื่อให้กับ Range Name แล้วเราสามารถอ้างเป็น Range("myRange") หาก myRange หมายถึงชื่อทีเราตั้งไว้ล่วงหน้า
titus2014 wrote:Val(txtcode.Text) ความหมายของ Val หน่อยครับ
Val เป็นการแปลง String ที่มีตัวเลขอยู่ด้วยให้เป็นตัวเลข ค่าที่คีย์ลงใน Object เช่น TextBox, ComboBox จะเป็น String การจะนำมาใช้คำนวณต่อปกติแล้วต้องแปลงให้เป็นตัวเลขเสียก่อน ซึ่ง Val ก็เป็นทางเลือกหนึ่งที่มักจะนำมาใช้ครับ

กระจ่างเลยครับ ดำน้ำอยู่นาน ขอบคุณครับ
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#12

Post by titus2014 »

อันนี้ขอต่อยอดหน่อยครับ
ถ้าเราต้องการสร้างเงื่อนไขสำหรับ Vlookup
โดยเงื่อนไข เรามี แค่ 3 ค่า
คือ 1-3
ผมเลือกใช้ Case ครับ
Case ที่ 1 ถ้า ในช่องtxtp มีค่า = 1 ให้ไปดูที่ แถวที่ 1 ของ Allitem
Case ที่ 2 ถ้า ในช่องtxtp มีค่า = 2 ให้ไปดูที่ แถวที่ 2 ของ Allitem
Case ที่ 2 ถ้า ในช่องtxtp มีค่า = 3 ให้ไปดูที่ แถวที่ 3 ของ Allitem
ผมเขียนยังนี้ หรือมีวิธีเขียนที่สั่นกว่านี้ครับ

Code: Select all

Private Sub txtcode_Change()
On Error Resume Next
Select Case txtp.Value
    Case txtp.Value = "1"
With Application.WorksheetFunction
        txtlist.Value = .VLookup(Val(txtp.Text), Sheets("DATA").Range("allitem"), 1, False)
        Case txtp.Value = "2"
With Application.WorksheetFunction
        txtlist.Value = .VLookup(Val(txtp.Text), Sheets("DATA").Range("allitem"), 2, False)
        Case txtp.Value = "3"
With Application.WorksheetFunction
        txtlist.Value = .VLookup(Val(txtp.Text), Sheets("DATA").Range("allitem"), 3, False)
    End With
End Sub
ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#13

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

txtlist.Value = .VLookup(Val(txtp.Text), Sheets("DATA").Range("allitem"), Val(txtp.Value), False)
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#14

Post by titus2014 »

snasui wrote::D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

txtlist.Value = .VLookup(Val(txtp.Text), Sheets("DATA").Range("allitem"), Val(txtp.Value), False)
ขอบคุณครับอาจาร์ย
ทำไปทำมา ลืมไปว่า Vlookup แสดงแค่รายการเดียว

ผมต้องการสร้างเงือนไข มากกว่า 2 รายการ
if txtp = 1 ให้ Combo Box แสดง List จากชื่อ item1
if txtp = 2 ให้ Combo Box แสดง List จากชื่อ item2
if txtp = 3 ให้ Combo Box แสดง List จากชื่อ item3

Combo Box ต้องเขียนอย่างไรครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#15

Post by snasui »

:D สามารถใช้ RowSource มาช่วยได้ ลองดูตัวอย่างที่กระทู้นี้ครับ viewtopic.php?t=3450&p=23511 สำหรับตัวอย่างอื่น ๆ ดูที่นี่ครับ RowSource
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#16

Post by titus2014 »

snasui wrote::D สามารถใช้ RowSource มาช่วยได้ ลองดูตัวอย่างที่กระทู้นี้ครับ viewtopic.php?t=3450&p=23511 สำหรับตัวอย่างอื่น ๆ ดูที่นี่ครับ RowSource

ขอบคุณมากครับ อาจาร์ย
ตอนแรกผมก็ใส่ RowSource =RangName ดูเหมือนรายการมันจะเยอะไปหน่อยครับ
ถามอาจาร์ยหน่อยครับ รูปแบบการเขียน RowSource ใน VBA หรือคำสั่งอืนๆ เราจะศึกษาจากไหน ครับ
และ .Value .Address อื่นๆ พวกนามสกลุ พวกนี้ เราจะเลือกใช้อย่างไรให้ถูกต้อง
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#17

Post by snasui »

:D การจะใช้ให้ถูกต้องคงต้องซื้อหนังสือมาศึกษาอย่างจริงจัง สำหรับแหล่งข้อมูลสำคัญที่ควรใช้ให้เป็นคือ Help ของโปรแกรมครับ จะได้ทราบว่า Property หรือ Method แต่ละตัวมีความหมายและให้ผลลัพธ์เป็นอะไร ทราบแต่เพียงอย่างเดียวคงไม่พอ ต้องฝึกฝนอย่างมากหากต้องการใช้อย่างคล่องแคล่ว

สำหรับ .Valueจะเป็น Default Property ของ Range เช่นนี้เป็นต้น ส่วน .Textก็เป็นค่า Default ของ Object ต่าง ๆ เช่น TextBox, ComboBox ครับ

คำว่า Default หมายถึงค่าตั้งต้น หากเราไม่ใส่ โปรแกรมจะใช้ค่าตั้งต้น ยกตัวอย่าง หากเราคีย์เป็น Range("A1") โปรแกรมจะถือว่าเราเขียนเป็น Range("A1").Value

โดยปกติ การเขียนโปรแกรมที่ดีจะต้องเขียน Property เข้าไปกำกับเสมอ แม้มันจะเป็นที่ทราบกันว่าใช้ค่าตั้งต้นก็ตาม เพื่อให้โปรแกรมเมอร์ที่มาทำงานต่ออ่านเข้าใจได้ทันที
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#18

Post by titus2014 »

titus2014 wrote:
snasui wrote::D สามารถใช้ RowSource มาช่วยได้ ลองดูตัวอย่างที่กระทู้นี้ครับ viewtopic.php?t=3450&p=23511 สำหรับตัวอย่างอื่น ๆ ดูที่นี่ครับ RowSource

Code: Select all

Private Sub UserForm_Initialize()
  Add.Visible = False
  a = Range("item1")
  b = Range("item2")
  c = Range("item3")
  Select Case txtp.Value
        Case txtp.Value = 1
            txtlist.RowSource = a
        Case txtp.Value = 2
            txtlist.RowSource = b
        Case txtp.Value = 3
            txtlist.RowSource = a
End Select
End Sub
ผิดตรงครับอาจาร์ย ERROR RUN TIME "424" Object required
titus2014
Member
Member
Posts: 25
Joined: Fri Aug 08, 2014 11:30 am

Re: ใช้ Vlookup ใน USER FORM

#19

Post by titus2014 »

snasui wrote::D การจะใช้ให้ถูกต้องคงต้องซื้อหนังสือมาศึกษาอย่างจริงจัง สำหรับแหล่งข้อมูลสำคัญที่ควรใช้ให้เป็นคือ Help ของโปรแกรมครับ จะได้ทราบว่า Property หรือ Method แต่ละตัวมีความหมายและให้ผลลัพธ์เป็นอะไร ทราบแต่เพียงอย่างเดียวคงไม่พอ ต้องฝึกฝนอย่างมากหากต้องการใช้อย่างคล่องแคล่ว

สำหรับ .Valueจะเป็น Default Property ของ Range เช่นนี้เป็นต้น ส่วน .Textก็เป็นค่า Default ของ Object ต่าง ๆ เช่น TextBox, ComboBox ครับ

คำว่า Default หมายถึงค่าตั้งต้น หากเราไม่ใส่ โปรแกรมจะใช้ค่าตั้งต้น ยกตัวอย่าง หากเราคีย์เป็น Range("A1") โปรแกรมจะถือว่าเราเขียนเป็น Range("A1").Value

โดยปกติ การเขียนโปรแกรมที่ดีจะต้องเขียน Property เข้าไปกำกับเสมอ แม้มันจะเป็นที่ทราบกันว่าใช้ค่าตั้งต้นก็ตาม เพื่อให้โปรแกรมเมอร์ที่มาทำงานต่ออ่านเข้าใจได้ทันที
เปิดเข้ามาดู HELP :shock: แหล่งความรู้เต็มๆ แต่ต้องนั้งทำความเข้าใจศัพท์มากมายเลยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ Vlookup ใน USER FORM

#20

Post by snasui »

:D แนบไฟล์ที่ได้ Update Code แล้วมาด้วย จะได้ดูต่อไปจากนั้นครับ
Post Reply