คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 5
ปุ่มสั้งพิมพ์ ต่อกับ Sub loopPrint()
Sub dell()
Dim resule As String
result = MsgBox("Yes or No?", vbYesNo + vbQuestion, "ยืนยันการลบ")
If result = vbYes Then
range("C7:M40").ClearContents
End If
End Sub
Sub pr()
ActiveWindow.SelectedSheets.PrintPreview ' preview
End Sub
Sub loopPrint()
Sheets("แบบรายงานผลการเรียน").Select
Dim p1, p2 As Integer
p1 = range("L14").Value
p2 = range("L15").Value
Call filldata(p1, p2)
End Sub
Sub filldata(ByVal pstart As Integer, ByVal pstop As Integer)
Dim subjectArray() As Variant
Dim i, j As Integer
Dim getData1(10) As Variant
Dim getData2(10) As Variant
Dim name As String
subjectArray = Array(5, 9, 13, 17, 21, 25, 29, 33, 37, 41)
For i = pstart To pstop
Sheets("สรุปปลายปี").Select
name = Cells(i + 6, 2).Value
For j = 0 To UBound(subjectArray)
getData1(j) = Cells(i + 6, subjectArray(j)).Value
getData2(j) = Cells(i + 6, subjectArray(j) + 1).Value
Next j
Sheets("แบบรายงานผลการเรียน").Select
range("E5").Value = name
For j = 0 To UBound(subjectArray)
Cells(j + 9, 8).Value = getData1(j)
Cells(j + 9, 9).Value = getData2(j)
Next j
MsgBox "print - " & name
Call pr
'Debug.Print "print out"
Next i
End Sub
Sub dell()
Dim resule As String
result = MsgBox("Yes or No?", vbYesNo + vbQuestion, "ยืนยันการลบ")
If result = vbYes Then
range("C7:M40").ClearContents
End If
End Sub
Sub pr()
ActiveWindow.SelectedSheets.PrintPreview ' preview
End Sub
Sub loopPrint()
Sheets("แบบรายงานผลการเรียน").Select
Dim p1, p2 As Integer
p1 = range("L14").Value
p2 = range("L15").Value
Call filldata(p1, p2)
End Sub
Sub filldata(ByVal pstart As Integer, ByVal pstop As Integer)
Dim subjectArray() As Variant
Dim i, j As Integer
Dim getData1(10) As Variant
Dim getData2(10) As Variant
Dim name As String
subjectArray = Array(5, 9, 13, 17, 21, 25, 29, 33, 37, 41)
For i = pstart To pstop
Sheets("สรุปปลายปี").Select
name = Cells(i + 6, 2).Value
For j = 0 To UBound(subjectArray)
getData1(j) = Cells(i + 6, subjectArray(j)).Value
getData2(j) = Cells(i + 6, subjectArray(j) + 1).Value
Next j
Sheets("แบบรายงานผลการเรียน").Select
range("E5").Value = name
For j = 0 To UBound(subjectArray)
Cells(j + 9, 8).Value = getData1(j)
Cells(j + 9, 9).Value = getData2(j)
Next j
MsgBox "print - " & name
Call pr
'Debug.Print "print out"
Next i
End Sub
แสดงความคิดเห็น
vba คำสั่งปริ้น แบบให้ปริ้นตั้งแผ่นแรกถึงแผ่นสุดท้าย(มีรูป) รบกวบด้วยนะครับ ขอบคุณ
มันเป็นข้อมูลนักเรียนที่มี หลายคน
คืออยากให้สั่งพิมพ์(กดปุ่มพิมพ์)แล้วออกมาหมดทั้งห้อง ทำแบบไหนได้บ้างครับ
เพราะที่หามาได้คือให้พิมพ์ทีละหน้าโดยไป ใส่เลข นักเรียนทีละคน ก่อน แล้วกดปุ่มพิมพ์
ขอบคุณครับ
ในที่นี้ถ้าทำเป็นจดหมายเวียนจะง่ายกว่า แต่ต้องได้ไปเปิด word ขึ้นมาอีกแล้วไปทำนี่นั่นหลายขั้นตอน ก็เลยอยากเขียน vba มาให้สำหรับคน(ครู)ที่ทำจดหมายเวียนไม่เป็นครับ