Page 1 of 1

ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Sat May 07, 2022 5:07 pm
by Xcelvba

Code: Select all

Sub print11111()
'
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub
ต้องการผลลลัพธ์ ออกแบบนี้มา 3 ใบโดยพิมพ์มาจาก ลำดับที่ cell P9 -P10 ครับ

Re: ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Sun May 08, 2022 8:24 am
by snasui
:D แนบไฟล์ที่มี Code มาด้วยครับ

ไฟล์ที่จะแนบ Code ได้อย่างน้อยจะต้องมีนามสกุลเป็น .xlsm, .xlsb ไม่ใช่ .xlsx ครับ

Re: ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Mon May 09, 2022 8:20 am
by Xcelvba
snasui wrote: Sun May 08, 2022 8:24 am :D แนบไฟล์ที่มี Code มาด้วยครับ

ไฟล์ที่จะแนบ Code ได้อย่างน้อยจะต้องมีนามสกุลเป็น .xlsm, .xlsb ไม่ใช่ .xlsx ครับ
ขอโทษครับ อ. แนบไฟล์ผิดครับ

Re: ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Mon May 09, 2022 5:28 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
Dim i As Integer, j As Integer
With Worksheets("Sheet1")
    For i = .Range("p9").Value To .Range("p10").Value
'            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        .PageSetup.PrintArea = .Range("g4").Offset(j, 0).Resize(7, 5).Address
        .PrintOut
        j = j + 8
    Next i
End With
'Other code

Re: ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Tue May 10, 2022 8:58 am
by Xcelvba
snasui wrote: Mon May 09, 2022 5:28 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
Dim i As Integer, j As Integer
With Worksheets("Sheet1")
    For i = .Range("p9").Value To .Range("p10").Value
'            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        .PageSetup.PrintArea = .Range("g4").Offset(j, 0).Resize(7, 5).Address
        .PrintOut
        j = j + 8
    Next i
End With
'Other code
ขอบคุณครับ อ. สอบถามเพิ่มเติมครับ

Code: Select all

 .PageSetup.PrintArea = .Range("g4").Offset(j, 0).Resize(7, 5).Address

        j = j + 8
.Range("g4").Offset(j, 0).Resize(7, 5).Address ความหมายคืออะไรครับ
j = j + 8 มีไว้ทำไมครับ

Re: ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Tue May 10, 2022 1:41 pm
by snasui
Xcelvba wrote: Tue May 10, 2022 8:58 am .Range("g4").Offset(j, 0).Resize(7, 5).Address
:D หมายถึงให้แสดงตำแหน่งของ g4 หลังจากย้ายไปด้านล่าง j บรรทัด ไปด้านขวา 0 คอลัมน์และขยายพื้นที่เป็น 7 บรรทัด 5 คอลัมน์ครับ
Xcelvba wrote: Tue May 10, 2022 8:58 amj = j + 8
หมายถึงให้ปรับค่า j โดยเพิ่มไปทีละ 8 เพื่อจะนำค่า j ไปใช้ตามบรรทัดบนครับ

Re: ต้องการปรินส์ตามลำดับที่สั่งครับ ด้วย vba

Posted: Tue May 10, 2022 2:27 pm
by Xcelvba
snasui wrote: Tue May 10, 2022 1:41 pm
Xcelvba wrote: Tue May 10, 2022 8:58 am .Range("g4").Offset(j, 0).Resize(7, 5).Address
:D หมายถึงให้แสดงตำแหน่งของ g4 หลังจากย้ายไปด้านล่าง j บรรทัด ไปด้านขวา 0 คอลัมน์และขยายพื้นที่เป็น 7 บรรทัด 5 คอลัมน์ครับ
Xcelvba wrote: Tue May 10, 2022 8:58 amj = j + 8
หมายถึงให้ปรับค่า j โดยเพิ่มไปทีละ 8 เพื่อจะนำค่า j ไปใช้ตามบรรทัดบนครับ
ขอบคุณครับ อ.