: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#1

Post by bank9597 »

:D ผมมีเรื่องอยากให้ช่วย 2 เรื่องครับ คือ การเสิร์ซข้อมูลมาแสดง และการอัพเดทข้อมูล

ในชีทฟอร์ม ต้องการให้ข้อมูลมาแสดงในช่อง A19:E150 ครับ

โดย C4 กับ C5 เทียบข้อมูลกับชีท TaxInvoice ครับ
โดยเลือกสถานะที่เป็น "ค่าว่าง" และ "ยังไม่ครบ" เนื่องจาก 2 เงื่อนไขนี้อยู่ในคอลัมน์เดียวกันคือคอลัมน์ H ผมเลยยังแก้ไขไม่ได้

เบื้องต้นผมลองไล่สูตรไว้แล้วใน L4:L7 ชีท Form ส่วนใน A19:E150 ผมดึงคำตอบที่ถูกต้องด้วยมือมาให้ดูก่อนครับ


ส่วนข้อ 2 เป็นเรื่องของโค๊ด VBA ครับ

ผมได้ทำการเซฟข้อมูลไปเก็บ 2 ที่ ในการกดครั้งเดียว คือเซฟข้อมูลจากชีท Temp ไปยัง Database และเซฟจาก Sub_Temp ไปยังชีท Data

ผมเขียนโค๊ดทุกอย่างไว้เรียบร้อยแล้ว และใช้งานได้แล้ว แต่ติดปัญหาที่น่าเกียจบางอย่าง รวมถึงไม่มั่นใจในโค๊ดที่เขียนว่าจะกระชับพอหรือยัง มันยาวไปไหม หรือ มีอะไรที่สั้นกว่านี้ไหม ผมเลยให้อาจารย์ช่วยดูหน่อยครับ

ปัญหาคือ พอผมทำรายการในชีท Form เสร็จแล้ว กดบันทึก ให้อาจารย์สังเกตคอลัมน์ A ในชีท Data จะเห็นว่ามีรหัสที่ไม่เหมือนที่เราสั่งบันทึกไป เทียบกับรหัสในชีท Database ได้เลยว่า มันไม่เหมือนกัน ทั้งๆที่รหัสตอนที่เราสั่งบันทึก มันอันเดียวกัน ผมคิดว่าผมต้องพลาดอะไรสักอย่าง รวมถึงโค๊ดบางตัวที่ยากจะเข้าใจ รบกวนอาจารย์ช่วยดู และปรับให้ตามสมควรให้หน่อยน่ัะครับ

ในไฟล์แนบ พอเปิดมา ลองกดบันทึกดูผลได้เลยครับ :tt:
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#2

Post by snasui »

:D เงื่อนไขการ Search ตามที่ถามมาไม่ง่ายนักครับ ควรเติมคอลัมน์ H ของชีท Tax Invoice ด้วยค่าที่ควรจะเป็นแล้ว Search ตามค่านั้นมาแทน

ส่วน VBA ผมทดสอบแล้วไม่เจอความผิดปกติ ลองทดสอบด้วยการกดแป้น F8 เพื่อดูการทำงานทีละขั้น แล้วจับมาให้ดูหน่อยครับว่าผิดพลาดอย่างไร
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#3

Post by bank9597 »

:D ขอบคุณครับ เดี๋ยวผมจะลอกดูอีกที่ครับ

ส่วนโคีดมีข้อผิดพลาดแน่นอนครับ รหัสชำระเงินที่นำไปบันทึกที่ Database และ Data เหมือนกัน ที่ถูกต้องคือตั้งเหมือนกัน เพราะบันทึกจากที่เดียวกันครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#4

Post by snasui »

:D ช่วยทำข้อมูลตัวอย่างในไฟล์ที่เกิด Error มาด้วยครับ จะได้เห็นว่า Error เป็นแบบไหน เพราะเท่าที่ทดสอบ ไม่มีตัวอย่างในชีท Sub_Temp จังไม่เกิด Error ใด
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#5

Post by bank9597 »

:D ขอบคุณครับอาจารย์ ผมแก้ปัยหาได้แล้วครับ เหลือแต่การเลือกเงื่อนไขให้เป็นอย่างเดียว กำลังพยายามอยู่ครับ อิอิ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
ChoBkuN
Member
Member
Posts: 239
Joined: Tue Nov 29, 2011 3:43 pm

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#6

Post by ChoBkuN »

อยากมีส่วนร่วม แต่ไม่เก่ง VBA ~ ~
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#7

Post by bank9597 »

อยากมีส่วนร่วม แต่ไม่เก่ง VBA ~ ~
ขอบคุณมากน่ะครับ ตอนนี้แก้ปัญหาได้แล้วครับ เหนื่อยไหลไปหลายวันเลยครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#8

Post by bank9597 »

:D มีปัญหาเพิ่มเติมมาถามต่อครับ ผมทำการสั่งบันทึกข้อมูล ในชีท Form ปรากกฏว่ามันต้องกดตกลงกันหลายครั้ง กว่าจะบันทึกเสร็จ รบกวนอาจารย์ช่วยดูให้หน่อยได้ไหมครับ ว่าจะต้องตัดส่วนไหนออกไปบ้าง หรือต้องเพิ่มส่วนไหนลงไปบ้าง
โมดูลชื่อ Record


:D อีกปัญหาคือการใช้ VBA ดึงข้อมูลมาแสดงครับ ผมได้ทำโค๊ดไว้แล้ว แต่ยังแสดงผลไม่ถูกต้องรบกวนอาจารย์ดูอีกหน่อยได้ไหมครับ
โมดูลชื่อ Report_1 ครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#9

Post by snasui »

:D
bank9597 wrote: มีปัญหาเพิ่มเติมมาถามต่อครับ ผมทำการสั่งบันทึกข้อมูล ในชีท Form ปรากกฏว่ามันต้องกดตกลงกันหลายครั้ง กว่าจะบันทึกเสร็จ รบกวนอาจารย์ช่วยดูให้หน่อยได้ไหมครับ ว่าจะต้องตัดส่วนไหนออกไปบ้าง หรือต้องเพิ่มส่วนไหนลงไปบ้าง
โมดูลชื่อ Record
ตัวอย่างที่ให้มาไม่พร้อมที่จะทดสอบครับ ซึ่งผมได้แจ้งไปรอบนึงแล้วตามด้านบน :roll:
bank9597 wrote: อีกปัญหาคือการใช้ VBA ดึงข้อมูลมาแสดงครับ ผมได้ทำโค๊ดไว้แล้ว แต่ยังแสดงผลไม่ถูกต้องรบกวนอาจารย์ดูอีกหน่อยได้ไหมครับ
โมดูลชื่อ Report_1 ครับ
เนื่องจากเลือกช่วงข้อมูลไม่ครบจึงไม่ได้คำตอบที่ต้องการ นอกจากนี้ช่วงข้อมูลที่ Filter กับช่วงข้อมูลที่นำมาแสดงผลมีขนาดไม่เท่ากันจึงต้องปรับปรุง Code เพื่อนำเฉพาะข้อมูลที่ต้องการมาวางตามด้านล่างครับ

Code: Select all

Sub FilterDataAll()
    Dim rSource As Range
    Application.EnableEvents = False
    With Sheets("Report")
        If .Range("A8") <> "" Then
            .Range("A8", .Range("D" & Rows.Count).End(xlUp)).ClearContents
        End If
    End With
    With Sheets("TaxInvoice")
        Set rSource = .Range("B2", .Range("H" & Rows.Count) _
            .End(xlUp))
    End With
    rSource.AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=Sheets("Report").Range("K1:M2")
    rSource.SpecialCells(xlCellTypeVisible).Resize(, 4).Copy
    Sheets("Report").Range("A8").PasteSpecial xlPasteValues
    Sheets("TaxInvoice").ShowAllData
    Application.EnableEvents = True
End Sub
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#10

Post by bank9597 »

:D ขอบคุณครับอาจารย์

ในส่วนของการฟิลเตอร์นั้น สมบูรณืแล้วครับ ไม่มีปัญหาอีกแล้ว

และก็ต้องขออภัยที่อธิบายปัญหาข้อแรกไม่ชัดเจนครับ

ผมได้แนบไฟล์ Ver.2 มาให้อีกครับ จะได้ข้อมูลเหมือนกัน เพื่อทำการทดลองครับ

ขออธิการทดสอบ เพื่อนำไปสู่ปัญหาที่ต้องการช่วยให้แก้ครับ

เมื่อเปิดไฟล์มา ในชีท Form ที่เซลล์ C4 เลือก "บริษัท จุฬาวิศวกรรม จำกัด" ที่ C5 เลือก "หน่วยงานปากท่อ"

ด้านล่าง บรรทัดที่ 19 ลงมา จะเป็นข้อมูลใบวางบิลที่มีสถานะ "ค้างชำระ" มาแสดง ใน F19 ลงไปมีไว้ใส่เลขเพื่อชำระเงินตามใบวางบิลครับ

ซึ่งข้อมูลที่นำมาแสดงนั้น จะดึงมาจากชีท TexInvoice ครับ

สำหรับการทำงานของโค๊ด มีดังนี้ครับ
สั่งบันทึกข้อมูลจากชีท Temp ไปชีท Database
สั่งบันทึกข้อมูลจากชีท Sub_Temp ไปชีท Data
แล้วก็สั่งอัพเดทสถานะ "ชำระแล้ว" กับ "ค้างชำระ" ไปที่ชีท TexInvoice โดยให้ตรงกับรหัสใบวางบิลนั้นๆ

ปัญหาคือ พอทำรายการเสร็จแล้ว มันจะฟ้องว่า "บันทึกข้อมูลเรียบร้อยแล้ว" แล้วเราก็กดโอเค แต่มันต้องกดซ้ำหลายครั้งนี่สิครับ รู้เลยว่าต้องวางโค๊ดผิดหลักการแน่นอน จึงอยากให้อาจารย์ดูให้หน่อยครับว่า ต้องปรับโค๊ดอย่างไร ให้มันเสร็จสิ้นในการกด ตกลง คั้งเดียว

เอาตามไฟล์ล่าสุดน่ะครับ
You do not have the required permissions to view the files attached to this post.
Last edited by bank9597 on Sat Feb 11, 2012 12:14 am, edited 1 time in total.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#11

Post by snasui »

:D นำ MsgBox ตรง Loop ออกไป ให้เหลือตามด้านล่างครับ

Code: Select all

For i = rtAll.Count To 1 Step -1
     If rs = rtAll(i) And rs.Offset(0, -4) = rtAll(i).Offset(0, -2) _
     And rs.Offset(0, 1) <> "" Then
         rs.Offset(0, 2).Copy
         rtAll(i).Offset(0, 5).PasteSpecial xlPasteValues
     End If
Next i
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#12

Post by bank9597 »

:lol: :lol: ได้ตามต้องการแล้วครับอาจารย์ ขอบคุณมากครับ

ตอนแรงที่ใส่โค๊ดไป ก็มีปัยหาอยู่ แต่พอปิดแล้วเปิดใหม่ ปัญหาเลยหมดไป

หลังจากนี้ ขอทดสอบกับข้อมูลจำนวนมากก่อนครับ ว่าจะมีปัญหาเรื่องความเร็วในการแสดงผลมากน้อยแค่ไหน

ขอบคุณมากครับ :mrgreen:
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#13

Post by bank9597 »

:cry: อาจารย์ครับ ผมได้นำไปทดสอบกับข้อมูลจำนวนมากแล้ว ปรากฏว่าไม่สามารถดึงข้อมูลมาแสดงตามต้องการได้ครับ

อธิบายปัญหาและเงื่อนไข

เงื่อนไขที่ว่าคือเงื่อนไขเดิมครับ คือกำหนดค่าต่างๆในชีท Report ดังนี้ เลือกชื่อบริษัท ในเซลล์ C2 เลือกหน่วยงานในเซลล์ C3 เลือกสถานะในเซลล์ C4

โดยทำการดึงข้อมูลจากชีท TaxInvoice มาแสดงครับ
จากโค๊ดที่อาจารย์ให้มา มันจะดึงข้อมูลได้แค่เงื่อนไขเดียว คือ "บริษัท จุฬาวิศวกรรม จำกัด" "หน่วยงานปากท่อ" สถานะ "ค้างชำระ" แต่พอระบุเงื่อนไขอื่นๆ ระบบไม่ดึงข้อมูลมาแสดงเลย ไม่ทราบว่าสาเหตุเป็นเพราะอะไร

ผมขอแนบไฟล์ในข้อความน่ะครับ เพราะเป็นข้อมูลจริงและต้องปกปิด ต้องขออภัยด้วยครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#14

Post by snasui »

:D ช่วยเปลี่ยนข้อความสำคัญในไฟล์และทำมาเป็นตัวอย่างครับ เสียเวลาไปบ้างแต่เพื่อเป็นประโยชน์กับเพื่อน ๆ ด้วยครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#15

Post by bank9597 »

:D ผมแนบไฟล์มาให้แล้วครับ ขออภัยด้วยครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#16

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub FilterDataAll()
'On Error Resume Next
  Dim rSource As Range
  'Application.EnableEvents = False
  With Sheets("Report")
      If .Range("A8") <> "" Then
          .Range("A8", .Range("D" & Rows.Count).End(xlUp)).ClearContents
      End If
  End With
  With Sheets("TaxInvoice")
      Set rSource = .Range("B2", .Range("H" & Rows.Count) _
          .End(xlUp))
  End With
  rSource.AdvancedFilter Action:=xlFilterInPlace, _
      CriteriaRange:=Sheets("Report").Range("K1:M2")
  rSource.Resize(, 4).SpecialCells(xlCellTypeVisible).Copy
  Sheets("Report").Range("A8").PasteSpecial xlPasteValues
  Sheets("TaxInvoice").ShowAllData
  'Application.EnableEvents = True
End Sub
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#17

Post by bank9597 »

:D สวัสดีตอนบ่ายครับ อาจารย์ ผมได้ลองโค๊ดแล้ว ผลปรากฏว่าแสดงผลได้ดีเยี่ยม รวดเร็วมากถึงแม้ข้อมูลจะเยอะก็ตาม

ขอบคุณอาจารย์ที่ช่วยชี้แนะครับ ผมจะเอาในส่วนนี้ไว้เป็นต้นแบบในการทำงานชิ้นต่อไปครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#18

Post by bank9597 »

:D อาจารย์ครับ ขอถามเพิ่มเติมต่อยอดหน่อยครับ พอดีผมได้ทำการ Filter ข้อมูลมาแสดง โดยวางตามคอลัมน์ตามที่เรากำหนด ไม่ได้เรียงไปตามลำดับเหมือนในฐานข้อมูล

ในชีท Report ผมต้องการดึงข้อมูล "หน่วยงาน" มาแสดงในคอลัมน์ G ผมได้ปรับโค๊ดหน่อยนึง มันแสดงมาแค่หัวคอลัมน์ ไม่ทราบว่าเพราะอะไร รบกวนอาจารย์ดูให้หน่อยครับ

โมดูลชื่อ Report_1 ครับ

ขอบคุณครับ :D
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#19

Post by snasui »

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

Code: Select all

Sub FilterDataAll()
  'On Error Resume Next
  Dim rSource As Range
  'Application.EnableEvents = False
  With Sheets("Report")
      If .Range("A8") <> "" Then
          .Range("A8", .Range("D" & Rows.Count).End(xlUp)).ClearContents
      End If
  End With
  With Sheets("TaxInvoice")
      Set rSource = .Range("B2", .Range("H" & Rows.Count))
  End With
  rSource.AdvancedFilter Action:=xlFilterInPlace, _
      CriteriaRange:=Sheets("Report").Range("K1:M2")
  rSource.Resize(, 4).SpecialCells(xlCellTypeVisible).Copy
  Sheets("Report").Range("A8").PasteSpecial xlPasteValues
  rSource.Offset(, 5).Resize(, 1).SpecialCells(xlCellTypeVisible).Copy
  Sheets("Report").Range("G8").PasteSpecial xlPasteValues
  Sheets("TaxInvoice").ShowAllData
  'Application.EnableEvents = True
End Sub
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเสิร์ซหาข้อมูลแบบ 2 เงื่อนไข

#20

Post by bank9597 »

:D แล้วผมจะมาแจ้งผลครับ รวมถึงถามเพิ่มเติมอีกครับ พอดีผมนำไปดัดแปลงใช้หลายอย่างเลยมีปัญหาไม่หมดง่าย อิอิ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply