สอบถาม Code VBA exportPDF
Posted: Thu Jul 17, 2025 12:27 am
จากไฟล์ที่แนบมา
โค๊ด
ต้องการสั่งพิมพ์รายชื่อในตารางครั้งเดียวให้ออกมา ทุกชั้น ทุกห้อง (เฉพาะห้องหรือชั้นที่มีนักเรียนเท่านั้น)
ชั้นให้ ห้องไหน ที่ไม่มีนักเรียน ไม่ต้องพิมพ์ออกมา
จากโค๊ดตอนนี้ ทำได้ทุกชั้นที่เป็นห้อง 1 และ ชั้นที่ไม่มีนักเรียนก็ออกมาด้วย
จะต้องปรับโค๊ดอย่างไรครับ
โค๊ด
Code: Select all
Sub ListStudentNameToPDF() 'พิมพ์บัญชีรายชื่อนักเรียนทั้งหมด
Dim sFolderPath As String
Dim Path As String
Dim FName As String
On Error Resume Next
sFolderPath = Sheet2.Range("K1").Value & "SchoolLunch"
If Dir(sFolderPath, vbDirectory) = "" Then
MkDir sFolderPath
End If
sFolderPath = Sheet2.Range("K1").Value & "SchoolLunch" & "\" & "PDF"
If Dir(sFolderPath, vbDirectory) = "" Then
MkDir sFolderPath
End If
FName = ActiveSheet.Range("B10")
Application.DisplayAlerts = False
Application.ScreenUpdating = False
If MsgBox("คุณต้องการพิมพ์บัญชีรายชื่อนักเรียนทั้งหมด ใช่หรือไม่?", 36, "ยืนยันการสั่งพิมพ์") = 6 Then
For i = 2 To Application.Count(Sheet2.Range("F2:F" & Sheet2.Range("F" & Rows.Count).End(xlUp).Row)) + 1
Sheet2.Range("E2").Value = Sheet2.Range("F" & i).Value
Sheet3.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFolderPath & "\" & Sheet3.Range("B10").Value
Next i
ActiveWorkbook.FollowHyperlink Address:=sFolderPath, NewWindow:=True
Else
MsgBox "คุณได้ยกเลิกการสั่งพิมพ์", vbInformation, "Cencel Printing"
End If
Sheet2.Range("E2").Value = 4
Application.ScreenUpdating = True
End Sub
ชั้นให้ ห้องไหน ที่ไม่มีนักเรียน ไม่ต้องพิมพ์ออกมา
จากโค๊ดตอนนี้ ทำได้ทุกชั้นที่เป็นห้อง 1 และ ชั้นที่ไม่มีนักเรียนก็ออกมาด้วย
จะต้องปรับโค๊ดอย่างไรครับ