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

ชีตตามตัวแปร
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

ชีตตามตัวแปร
shSearchData ไม่มีข้อมูลในช่วง A1:P1 ก็เลย Match ไม่เจอครับ
แล้วทำไหมไฟล์ ตัวอย่างถึง Match เจอละครับพี่ทั้งๆที่ ใช้เหมือนกันแค่เปลี่ยน ข้อมูลใน Database
Re: VBA SearchColumn แล้ว Error
Posted: Thu Aug 06, 2020 9:16 pm
by snasui

ไฟล์ล่าสุด 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

ปรับ 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

เปลี่ยน 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

เปลี่ยน 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

ลองเปลี่ยนเครื่องหมาย = เป็น <> แล้วสังเกตผลที่ได้ครับ
การปรับ 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 แบบนี้หรือ
ป่าวครับ

กรุณาลองตามนี้ ติดปัญหาใดค่อยนำมาถามกันต่อครับ
คำว่า "ป่าว" ให้ใช้คำอื่นแทน เช่น "เปล่า" หรือแทนด้วย "ไม่" จะได้ไม่ผิดกฎการใช้บอร์ดข้อ 1 ด้านบนครับ
