Module11 ใช้โค๊ดดังนี้ครับอาจารย์
Code: Select all
Sub Grade0_Click()
Dim directory As String, fileName As String
Dim sheet As Worksheet, j As Integer, i, k, l, m, n, o, w As Integer
Dim tempBook As Workbook, thsBook As Workbook
Application.ScreenUpdating = False 'directory = "D:\»¾.5\»Õ¡ÒÃÈÖ¡ÉÒ2559\ÁѸÂÁ\à·ÍÁ1\Á.1-1\"
directory = Sheets("Main").Range("B1").Value
fileName = Dir(directory & "*.xl??")
Set thsBook = ThisWorkbook
w = 7
j = 7
i = 8
k = 2
l = 3
m = 4
n = 5
o = 6
Do While fileName <> ""
Set tempBook = Workbooks.Open(directory & fileName)
' thsBook.Sheets("เกรด0").Cells(2, j) = tempBook.Name
If (tempBook.Sheets("คะแนน1").Range("BA" & i).Value) = 0 Then
thsBook.Worksheets("เกรด0").Cells(w, j).Resize(1, 1).Value = tempBook.Sheets("คะแนน1").Range("BA" & i).Value
thsBook.Worksheets("เกรด0").Cells(w, k).Resize(1, 1).Value = tempBook.Sheets("คะแนน1").Range("B" & i).Value
thsBook.Worksheets("เกรด0").Cells(w, l).Resize(1, 1).Value = tempBook.Sheets("คะแนน1").Range("C" & i).Value
thsBook.Worksheets("เกรด0").Cells(w, m).Resize(1, 1).Value = tempBook.Sheets("คะแนน1").Range("D" & i).Value
thsBook.Worksheets("เกรด0").Cells(w, n).Resize(1, 1).Value = tempBook.Sheets("คะแนน1").Range("E" & i).Value
thsBook.Worksheets("เกรด0").Cells(w, o).Resize(1, 1).Value = tempBook.Sheets("คะแนน1").Range("AZ" & i).Value
' ´Ö§ÁÒ¨Ò¡ªÕ· Home
thsBook.Worksheets("เกรด0").Cells(w, 8).Resize(1, 1).Value = tempBook.Sheets("Home").Range("G5").Value
thsBook.Worksheets("เกรด0").Cells(w, 9).Resize(1, 1).Value = tempBook.Sheets("Home").Range("G4").Value
thsBook.Worksheets("เกรด0").Cells(w, 10).Resize(1, 1).Value = tempBook.Sheets("Home").Range("C11").Value
thsBook.Worksheets("เกรด0").Cells(w, 11).Resize(1, 1).Value = tempBook.Sheets("Home").Range("C12").Value
thsBook.Worksheets("เกรด0").Cells(w, 12).Resize(1, 1).Value = tempBook.Sheets("Home").Range("D13").Value
thsBook.Worksheets("เกรด0").Cells(w, 13).Resize(1, 1).Value = tempBook.Sheets("Home").Range("E9").Value
thsBook.Worksheets("เกรด0").Cells(w, 14).Resize(1, 1).Value = tempBook.Sheets("Home").Range("C17").Value
End If
i = i + 1
' k = k + 1
' l = l + 1
' m = m + 1
' n = n + 1
' o = o + 1
w = w + 1
j = j + 1
tempBook.Close False
fileName = Dir()
Loop
Application.ScreenUpdating = True
' MsgBox ("ÃѺ¢éÍÁÙŨҡ Directory " & Sheets("¤Ðá¹¹1").Range("B1").Value & " àÃÕºÃéÍÂáÅéǤÃѺ")
End Sub
เรียนสอบถามครับอาจารย์ ในแต่ละไฟล์ของโฟลเดอร์
D:\ปพ.5\ปีการศึกษา2559\มัธยม\เทอม1\ม.1-1\ มีไฟล์บรรจุอยู่หลายไฟล์ เมื่อเปิดดูแต่ละไฟล์ ถ้าพบว่านักเรียนได้เกรด 0 ที่ชีท
คะแนน1 cell
BA8:BA62 ของแต่ละไฟล์ ถ้าติด 0 ก็ให้คัดลอกข้อมูลมาแสดงเฉพาะคนที่ติด 0 จนครบทุกคนที่ติด ทุกรายวิชา คัดลอกมาวางลงที่ ไฟล์
รศ.2-มัธยมต้น.xlsm ที่ชีท
เกรด0 cell
B7:N7 ถ้าพบคนติด 0 ก็วางลงไปในแถวถัดมาคือ
B8:N8 ไปเรื่อยๆ จนไม่มีคนติด 0 ก็ให้จบการทำงาน
เรียนสอบถามอาจารย์ว่า ผมจะแก้ปัญหาตรงจุดใดครับ
ใช้ปุ่ม
แสดงนักเรียนที่ได้เกรด 0 ที่ชีท
เกรด0