ต้องการตรวจอุปกรณ์กับรหัสวัสดุตามไฟล์ฐานข้อมูลที่มี
Posted: Sun Jul 03, 2022 10:56 pm
ดิฉันต้องการตรวจอุปกรณ์(Column A)กับรหัสวัสดุ(Column A) ตามไฟล์ฐานข้อมูลที่มีหากตรงตามฐานข้อมูล ให้แสดงว่า "TRUE" ที่ Column C
//อุปกรณ์ชื่อว่า "แอร์" จะมีรหัสวัสดุตามไฟล์ฐานข้อมูล(ไฟล์ชื่อ : รหัสmatt) คือ 30024135 , 30035881 , 30038309 , 30024136 ,30024128 และ 40000197 //
โค้ดที่พยายามลองเขียนไว้ได้คือ
1.ดึงข้อมูลจากไฟล์ฐานข้อมูล(ไฟล์ชื่อ : รหัสmatt) มาสร้างชีทใหม่ที่ไฟล์ที่จะใช้ทำงานตรวจสอบ (ไฟล์ชื่อ : Question)
2.ตรวจสอบชื่ออุปกรณ์(Product Type)ในColumn B และรหัสวัสดุ(Matt.)ในColumn A ตามฐานข้อมูลที่ดึงมาอยู่ในชีทใหม่(Sheet : รหัสMatt) หากตรงกัน ให้แสดงว่า "TRUE" ที่ Column C
แต่ลองเขียนแล้วรันดู ผลลัพธ์ดันแสดงเป็น FALSE หมดเลยค่ะ เลยอยากให้ท่านๆที่สะดวกช่วยเช็ครึแนะแนวทางหน่อยค่ะ ขอบคุณมากนะคะ
และขออภัยหากอธิบายตรงไหนไม่เข้าใจค่ะ
หมายเหตุ : เนื่องจาก ไฟล์ข้อมูลจริง รหัสวัสดุและอุปกรณ์มีจำนวนมาก ดิฉันจึงคิดว่าหากนำมาเขียนไล่ลงใส่โค้ดให้เช็คแบบ IF ทีละตัวคงจะทำให้โค้ดยาวมาก ดิฉันเลยทำเป็นไฟล์ฐานข้อมูลแทน เพื่อเก็บรหัสวัสดุของแต่ละอุปกรณ์ แล้วจึงค่อยให้ดึงไฟล์จากฐานข้อมูลมาสร้างชีทใหม่ ในไฟล์ที่จะใช้ทำงานตรวจสอบ ดิฉันเป็นมือใหม่พึ่งเริ่มเรียน พยายามลองเขียนรึศึกษาArray แล้วแต่ก็ไม่สามารถรันได้ หากท่านใดมีความรู้แล้วสะดวกที่จะลองช่วยคิดรึแนะนำ จะยินดีเป็นอย่างยิ่งค่ะ ขอบคุณมากค่ะ
//อุปกรณ์ชื่อว่า "แอร์" จะมีรหัสวัสดุตามไฟล์ฐานข้อมูล(ไฟล์ชื่อ : รหัสmatt) คือ 30024135 , 30035881 , 30038309 , 30024136 ,30024128 และ 40000197 //
โค้ดที่พยายามลองเขียนไว้ได้คือ
1.ดึงข้อมูลจากไฟล์ฐานข้อมูล(ไฟล์ชื่อ : รหัสmatt) มาสร้างชีทใหม่ที่ไฟล์ที่จะใช้ทำงานตรวจสอบ (ไฟล์ชื่อ : Question)
2.ตรวจสอบชื่ออุปกรณ์(Product Type)ในColumn B และรหัสวัสดุ(Matt.)ในColumn A ตามฐานข้อมูลที่ดึงมาอยู่ในชีทใหม่(Sheet : รหัสMatt) หากตรงกัน ให้แสดงว่า "TRUE" ที่ Column C
แต่ลองเขียนแล้วรันดู ผลลัพธ์ดันแสดงเป็น FALSE หมดเลยค่ะ เลยอยากให้ท่านๆที่สะดวกช่วยเช็ครึแนะแนวทางหน่อยค่ะ ขอบคุณมากนะคะ
และขออภัยหากอธิบายตรงไหนไม่เข้าใจค่ะ
Code: Select all
Sub Matt()
Workbooks("ÃËÑÊMatt.xlsx").Worksheets("Sheet1").Range("A1:C1421").Copy
Sheets.Add
ActiveSheet.Name = "ÃËÑÊMatt"
Range("A1048576").End(xlUp).Select
Selection.PasteSpecial xlPasteValues
End Sub
Sub Check()
Dim rSH As Worksheet
Dim sSh As Worksheet
Set rSH = Worksheets("ÃËÑÊMatt")
Set sSh = Worksheets("data")
Dim ptype As String, Matt As String, result As String
Sheets("data").Select
Range("C1").Value = "Result"
For a = 2 To sSh.Range("A" & Rows.Count).End(xlUp).Row
Matt = sSh.Range("A" & a).Value
ptype = sSh.Range("B" & a).Value
result = sSh.Range("C" & a).Value
For b = 2 To rSH.Range("A" & Rows.Count).End(xlUp).Row
If (rSH.Range("A" & b).Value = ptype And rSH.Range("B" & b).Value = Matt) Then
sSh.Range("C" & a).Value = result
Else
sSh.Range("C" & a).Value = "False"
Exit For
End If
Next b
Next a
Debug.Print "Completed"
End Sub
Sub Run()
Call Matt
Call Check
End Sub