ขอลองดูนะครับ ตกหล่นอย่างไร ขอให้อาจารย์และเพื่อนๆ ช่วยปรับครับ

ช่วง
Dim เป็นการประกาศตัวแปรครับ ลองดูชนิดของตัวแปรที่นี่
DataType Summary
มีตัวแปรตัวหนึ่งถูกประกาศเป็นอาร์เรย์คือ
Projectarray() มีสมาชิก 51 รายการ (รวม 0 ด้วย)

เริ่มแรกให้
i=0 (สมาชิกตัวแรกของอาร์เรย์) และ
j=4
While [condition]...Wend เป็นการลูปหรือการสั่งให้ทำงานแบบวนไปเรื่อยๆ ครับ ในกรณีจะวนจนกว่า [condition] จะเป็นเท็จ [condition] ในที่นี้ก็คือ Sheet1.Cells(j, 1) > ""
--- เริ่มที่
.cells(4,1) คือแถวที่ 4 คอลัมน์ที่ 1 หรือก็คือเซลล์ A4 มีค่ามากกว่าค่าว่างหรือไม่ (เอ... เปรียบเทียบแบบนี้น่าจะ error นะ หรือยังไง? งง)
--- หากตรวจ [condition] แล้วได้ True ก็จะมาที่คำสั่ง
If... Else... Endif
--- ที่
If Left(Sheet1.Cells(j, 1), 3) = "IMT" จะตรวจว่าอักขระ 3 ตัวซ้ายในเซลล์ A4 คือ "IMT" หรือไม่ หากใช่ก็จะมาที่
Projectarray(i) = Sheet1.Cells(j, 2) คือเอาค่าในเซลล์ B4 มาใส่เป็นสมาชิกตัวที่ i (หรือตัวที่ 0 ในตอนเริ่ม) จากนั้นคำสั่งก็จะให้เพิ่มค่า i และ j อย่างละ 1
--- หาก If ตรวจแล้วว่า
Left(Sheet1.Cells(j, 1), 3) = "IMT" เป็นเท็จ คำสั่งก็ไปที่ Else และให้เพิ่มเฉพาะค่า j อีก 1 (ให้เปลี่ยนเซลล์ในการตรวจสอบไปเรื่อยๆ)
--- ลูปก็จะวนไปที่
While ใหม่ จนกว่าจะพบว่า condition เป็น False หากเจอว่าเป็น False ก็จะมาที่
ListBox2.List = Projectarray() คือให้แสดงรายการ Projectarray ใน ListBox2 ครับ