snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
omozk
Member
Posts: 6 Joined: Wed Aug 05, 2020 4:21 pm
#1
Post
by omozk » Wed Aug 05, 2020 4:29 pm
ค้นหาเลือกฟิว แล้วพิมค้นหาใน Textboxแล้วค้นหาแล้วมัน Error
iColumn = Application.WorksheetFunction.Match(sColumn, shSearchData.Range("A1:P1"), 0)
Attachments
Fu_Rev1.xlsm
(248.88 KiB) Downloaded 9 times
ำำ66.png (110.3 KiB) Viewed 126 times
ำๆำด.png (71.73 KiB) Viewed 126 times
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed Aug 05, 2020 6:21 pm
ชีตตามตัวแปร
shSearchData ไม่มีข้อมูลในช่วง A1:P1 ก็เลย Match ไม่เจอครับ
omozk
Member
Posts: 6 Joined: Wed Aug 05, 2020 4:21 pm
#3
Post
by omozk » Thu Aug 06, 2020 10:41 am
snasui wrote: Wed Aug 05, 2020 6:21 pm
ชีตตามตัวแปร
shSearchData ไม่มีข้อมูลในช่วง A1:P1 ก็เลย Match ไม่เจอครับ
แล้วทำไหมไฟล์ ตัวอย่างถึง Match เจอละครับพี่ทั้งๆที่ ใช้เหมือนกันแค่เปลี่ยน ข้อมูลใน Database
Attachments
Fully-Automated.xlsm
(45.28 KiB) Downloaded 8 times
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Aug 06, 2020 9:16 pm
ไฟล์ล่าสุด Code คือ
iColumn = Application.WorksheetFunction.Match(sColumn, shDatabase.Range("A1:I1"), 0)
ที่หาเจอเพราะชีตตามตัวแปร
shDatabase มีหัวคอลัมน์ที่ใช้ในการค้นหาอยู่ครับ
ตัวแปร
shDatabase คือชีต Database
ส่วนตัวแปร
shSearchData ตามโพสต์ก่อนหน้าคือชีต SearchData ซึ่งไม่มีหัวคอลัมน์ใด ๆ ที่ใช้สำหรับการค้นหาครับ
omozk
Member
Posts: 6 Joined: Wed Aug 05, 2020 4:21 pm
#5
Post
by omozk » Fri Aug 07, 2020 11:16 am
ขอบคุณครับได้แล้ว แต่Search ข้อมูลแล้วไม่เจอสักข้อมูลเลยครับผมควรจะแก้ไขตรงไหนต่อไปครับ
iColumn = Application.WorksheetFunction.Match(sColumn, shDatabase.Range("A1:P1"), 0)
Attachments
Fu_Rev1.xlsm
(276.52 KiB) Downloaded 6 times
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Fri Aug 07, 2020 5:09 pm
ปรับ Code ส่วนด้านล่างเสียใมม่ ตัวแปรจะต้องไม่ครอบด้วยฟันหนูครับ
Code: Select all
'Other
If frmForm.cmbSearchColumn.Value = "Companyname" Then
shDatabase.Range("A1:P" & iDatabaseRow).AutoFilter Field:=iColumn, Criteria1:=sValue
Else
shDatabase.Range("A1:P" & iDatabaseRow).AutoFilter Field:=iColumn, Criteria1:="*" & sValue & "*"
End If
'Other
omozk
Member
Posts: 6 Joined: Wed Aug 05, 2020 4:21 pm
#7
Post
by omozk » Thu Aug 13, 2020 1:29 pm
ลองเอา " " ออกแล้ว
แต่ก็ยังหาข้อมูลไม่ได้ตามต้องการ
ต้องจัดการ code ยังไงครับ
Attachments
Fu_Rev11.xlsm
(274.72 KiB) Downloaded 7 times
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Thu Aug 13, 2020 9:21 pm
เปลี่ยน Statement ตามด้านล่างให้ตรงกับเป้าหมายที่ต้องการครับ
If Application.WorksheetFunction.Subtotal(3, shDatabase.Range("C:C")) = 2 Then
Code นี้แปลว่านับค่าที่ไม่ได้ซ่อนในคอลัมน์ C แล้วได้ 2 รายการ ให้ทำงานตามเงื่อนไข ซึ่งผมลองเลือกเป็น Country แล้วเลือก Thai ค่าที่ Filter มาได้ประมาณ 170 รายการ ซึ่งไม่เท่ากับ 2 โปรแกรมขึ้นข้อความว่า Not Found ซึ่งเป็นการตรวจเช็คที่ไม่ถูกต้องครับ
omozk
Member
Posts: 6 Joined: Wed Aug 05, 2020 4:21 pm
#9
Post
by omozk » Sat Aug 15, 2020 10:37 am
snasui wrote: Thu Aug 13, 2020 9:21 pm
เปลี่ยน Statement ตามด้านล่างให้ตรงกับเป้าหมายที่ต้องการครับ
If Application.WorksheetFunction.Subtotal(3, shDatabase.Range("C:C")) = 2 Then
Code นี้แปลว่านับค่าที่ไม่ได้ซ่อนในคอลัมน์ C แล้วได้ 2 รายการ ให้ทำงานตามเงื่อนไข ซึ่งผมลองเลือกเป็น Country แล้วเลือก Thai ค่าที่ Filter มาได้ประมาณ 170 รายการ ซึ่งไม่เท่ากับ 2 โปรแกรมขึ้นข้อความว่า Not Found ซึ่งเป็นการตรวจเช็คที่ไม่ถูกต้องครับ
ขอดู code ตัวอย่างหน่อยได้ไหมครับ
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Sat Aug 15, 2020 10:47 am
ลองเปลี่ยนเครื่องหมาย = เป็น <> แล้วสังเกตผลที่ได้ครับ
การปรับ Code จะต้องทำมาเอง ติดแล้วค่อยถามกันต่อ เปิดโอกาสให้ถามกันได้ตลอดเวลาครับ
omozk
Member
Posts: 6 Joined: Wed Aug 05, 2020 4:21 pm
#11
Post
by omozk » Wed Aug 19, 2020 4:49 pm
สามารถค้นหาได้แล้วครับ
ต่อมาผมได้ทำการ Line Notify to Excel แล้วอยากให้แสดงค่าที่ค้นหาจากข้อมูลข้างต้น แล้วส่งค่าไปยัง Line Notify
แบบเลือกฟิวที่จะให้ส่งไปยัง Line จะต้องใช้ code แบบไหนครับ
worksheets("SearchData"). range ("A1").value แบบนี้หรือป่าวครับ
yourMessage = "msg"
lineMessage = "message=" & yourMessage
Attachments
1re.PNG (51.06 KiB) Viewed 50 times
2re.PNG (62.63 KiB) Viewed 50 times
Report_VBA.xlsm
(275.95 KiB) Downloaded 5 times
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Wed Aug 19, 2020 9:46 pm
omozk wrote: Wed Aug 19, 2020 4:49 pm
worksheets("SearchData"). range ("A1").value แบบนี้หรือ
ป่าว ครับ
กรุณาลองตามนี้ ติดปัญหาใดค่อยนำมาถามกันต่อครับ
คำว่า "ป่าว" ให้ใช้คำอื่นแทน เช่น "เปล่า" หรือแทนด้วย "ไม่" จะได้ไม่ผิดกฎการใช้บอร์ดข้อ 1 ด้านบนครับ