Page 1 of 1

สอบถาม Code VBA exportPDF

Posted: Thu Jul 17, 2025 12:27 am
by tigerwit
จากไฟล์ที่แนบมา
โค๊ด

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 และ ชั้นที่ไม่มีนักเรียนก็ออกมาด้วย
จะต้องปรับโค๊ดอย่างไรครับ

Re: สอบถาม Code VBA exportPDF

Posted: Thu Jul 17, 2025 7:04 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
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
        If Sheet3.Range("D8").Value <> "" Then
            Sheet3.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFolderPath & "\" & Sheet3.Range("B10").Value
        End If
    Next i
    ActiveWorkbook.FollowHyperlink Address:=sFolderPath, NewWindow:=True
Else
'Other code