Page 1 of 1

VBA SearchColumn แล้ว Error

Posted: Wed Aug 05, 2020 4:29 pm
by omozk
ค้นหาเลือกฟิว แล้วพิมค้นหาใน Textboxแล้วค้นหาแล้วมัน Error


iColumn = Application.WorksheetFunction.Match(sColumn, shSearchData.Range("A1:P1"), 0)

Re: VBA SearchColumn แล้ว Error

Posted: Wed Aug 05, 2020 6:21 pm
by snasui
:D ชีตตามตัวแปร shSearchData ไม่มีข้อมูลในช่วง A1:P1 ก็เลย Match ไม่เจอครับ

Re: VBA SearchColumn แล้ว Error

Posted: Thu Aug 06, 2020 10:41 am
by omozk
snasui wrote: Wed Aug 05, 2020 6:21 pm :D ชีตตามตัวแปร shSearchData ไม่มีข้อมูลในช่วง A1:P1 ก็เลย Match ไม่เจอครับ


แล้วทำไหมไฟล์ ตัวอย่างถึง Match เจอละครับพี่ทั้งๆที่ ใช้เหมือนกันแค่เปลี่ยน ข้อมูลใน Database

Re: VBA SearchColumn แล้ว Error

Posted: Thu Aug 06, 2020 9:16 pm
by snasui
:D ไฟล์ล่าสุด Code คือ

iColumn = Application.WorksheetFunction.Match(sColumn, shDatabase.Range("A1:I1"), 0)

ที่หาเจอเพราะชีตตามตัวแปร shDatabase มีหัวคอลัมน์ที่ใช้ในการค้นหาอยู่ครับ

ตัวแปร shDatabase คือชีต Database
ส่วนตัวแปร shSearchData ตามโพสต์ก่อนหน้าคือชีต SearchData ซึ่งไม่มีหัวคอลัมน์ใด ๆ ที่ใช้สำหรับการค้นหาครับ

Re: VBA SearchColumn แล้ว Error

Posted: Fri Aug 07, 2020 11:16 am
by omozk
ขอบคุณครับได้แล้ว แต่Search ข้อมูลแล้วไม่เจอสักข้อมูลเลยครับผมควรจะแก้ไขตรงไหนต่อไปครับ

iColumn = Application.WorksheetFunction.Match(sColumn, shDatabase.Range("A1:P1"), 0)

Re: VBA SearchColumn แล้ว Error

Posted: Fri Aug 07, 2020 5:09 pm
by snasui
:D ปรับ 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

Re: VBA SearchColumn แล้ว Error

Posted: Thu Aug 13, 2020 1:29 pm
by omozk
ลองเอา " " ออกแล้ว
แต่ก็ยังหาข้อมูลไม่ได้ตามต้องการ
ต้องจัดการ code ยังไงครับ

Re: VBA SearchColumn แล้ว Error

Posted: Thu Aug 13, 2020 9:21 pm
by snasui
:D เปลี่ยน Statement ตามด้านล่างให้ตรงกับเป้าหมายที่ต้องการครับ

If Application.WorksheetFunction.Subtotal(3, shDatabase.Range("C:C")) = 2 Then

Code นี้แปลว่านับค่าที่ไม่ได้ซ่อนในคอลัมน์ C แล้วได้ 2 รายการ ให้ทำงานตามเงื่อนไข ซึ่งผมลองเลือกเป็น Country แล้วเลือก Thai ค่าที่ Filter มาได้ประมาณ 170 รายการ ซึ่งไม่เท่ากับ 2 โปรแกรมขึ้นข้อความว่า Not Found ซึ่งเป็นการตรวจเช็คที่ไม่ถูกต้องครับ

Re: VBA SearchColumn แล้ว Error

Posted: Sat Aug 15, 2020 10:37 am
by omozk
snasui wrote: Thu Aug 13, 2020 9:21 pm :D เปลี่ยน Statement ตามด้านล่างให้ตรงกับเป้าหมายที่ต้องการครับ

If Application.WorksheetFunction.Subtotal(3, shDatabase.Range("C:C")) = 2 Then

Code นี้แปลว่านับค่าที่ไม่ได้ซ่อนในคอลัมน์ C แล้วได้ 2 รายการ ให้ทำงานตามเงื่อนไข ซึ่งผมลองเลือกเป็น Country แล้วเลือก Thai ค่าที่ Filter มาได้ประมาณ 170 รายการ ซึ่งไม่เท่ากับ 2 โปรแกรมขึ้นข้อความว่า Not Found ซึ่งเป็นการตรวจเช็คที่ไม่ถูกต้องครับ

ขอดู code ตัวอย่างหน่อยได้ไหมครับ

Re: VBA SearchColumn แล้ว Error

Posted: Sat Aug 15, 2020 10:47 am
by snasui
:D ลองเปลี่ยนเครื่องหมาย = เป็น <> แล้วสังเกตผลที่ได้ครับ

การปรับ Code จะต้องทำมาเอง ติดแล้วค่อยถามกันต่อ เปิดโอกาสให้ถามกันได้ตลอดเวลาครับ

Re: VBA SearchColumn แล้ว Error

Posted: Wed Aug 19, 2020 4:49 pm
by omozk
สามารถค้นหาได้แล้วครับ

ต่อมาผมได้ทำการ Line Notify to Excel แล้วอยากให้แสดงค่าที่ค้นหาจากข้อมูลข้างต้น แล้วส่งค่าไปยัง Line Notify
แบบเลือกฟิวที่จะให้ส่งไปยัง Line จะต้องใช้ code แบบไหนครับ
worksheets("SearchData"). range ("A1").value แบบนี้หรือป่าวครับ

yourMessage = "msg"

lineMessage = "message=" & yourMessage

Re: VBA SearchColumn แล้ว Error

Posted: Wed Aug 19, 2020 9:46 pm
by snasui
omozk wrote: Wed Aug 19, 2020 4:49 pm worksheets("SearchData"). range ("A1").value แบบนี้หรือป่าวครับ
:D กรุณาลองตามนี้ ติดปัญหาใดค่อยนำมาถามกันต่อครับ

คำว่า "ป่าว" ให้ใช้คำอื่นแทน เช่น "เปล่า" หรือแทนด้วย "ไม่" จะได้ไม่ผิดกฎการใช้บอร์ดข้อ 1 ด้านบนครับ :roll: