IN Liên tục

Liên hệ QC

daibangkieuhanh

Thành viên chính thức
Tham gia
5/7/07
Bài viết
55
Được thích
21
Mình muốn in khoảng 1780 tờ cam kết trên cùng 1 sheet. Hiện tại mình đã đặt công thức để mỗi nội dung thay đổi theo giá trị của ô L7 (L7=1,2,3...1780). Nếu làm thủ công, thì mình nhập vào ô L7, giá trị =1--> in ra, tiếp tục lại nhập L7=2 --->in ra...Lâu quá, nên mình thử ghi Marco để chỉ việc chạy Marco là tự động in ra từ 1 đến 1780 tờ, như sau:
Range("L7").Select
ActiveCell.FormulaR1C1 = "1"
Range("L8").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("L7").Select
ActiveCell.FormulaR1C1 = "2"
Range("L8").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("L7").Select
ActiveCell.FormulaR1C1 = "3"
Range("L8").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("L7").Select
ActiveCell.FormulaR1C1 = "4"

.........
Nhưng vẫn lâu, vì mình sẽ phải viết đến khi = 1780, mới xong.
Do trình độ VBA còn ABC, nên mong các bạn giúp mình viết đoạn code nào gắn gọn hơn. Giúp mình với. Xin cảm ơn trước nhé.Thân
 
Vậy thì bạn dùng vòng lập For đi... tiếc là tôi ko có máy in để thử, nhưng tôi nghĩ đại khái code sẽ là:
PHP:
Sub Intrang()
   For i = 1 To 1780
     Range("L7").Value = i
     ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
   Next i
End Sub
In 1780 tờ e rằng cũng hơi mệt nhỉ! Lở giữa đường trục trặc thì sao?
ANH TUẤN
 
Upvote 0
Trời ơi văn khiện, tài liệu gì mà ...... dài dữ vậy, bạn in một lúc thì máy in của bạn phải là đời ..... cấp chứ còn máy HP chấm 5.... cũng chỉ in vài trăm trang là nóng máy và chạy rù dần bao giờ mới xọng dc.
 
Upvote 0
he he, máy in thông thường thì cũng chỉ chứa được 1 RAM giấy = 500 tờ các bác nhỉ? mà có in xong chỗ này thì sờ tay vào thì cũng bỏng chết...........
 
Upvote 0
Vậy thì bạn dùng vòng lập For đi... tiếc là tôi ko có máy in để thử, nhưng tôi nghĩ đại khái code sẽ là:
PHP:
Sub Intrang()
   For i = 1 To 1780
     Range("L7").Value = i
     ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
   Next i
End Sub
In 1780 tờ e rằng cũng hơi mệt nhỉ! Lở giữa đường trục trặc thì sao?
ANH TUẤN
Cái này nên đặt vòng lặp đến giá trị ô nào đó, khi cần in đến đâu thì gõ giá trị (trang cần in) vào. Còn phải nghỉ ngơi ăn cơm chứ xơi một lúc 1780 trang hic .. hic ngất xỉu.
 
Upvote 0
Cái này nên đặt vòng lặp đến giá trị ô nào đó, khi cần in đến đâu thì gõ giá trị (trang cần in) vào. Còn phải nghỉ ngơi ăn cơm chứ xơi một lúc 1780 trang hic .. hic ngất xỉu.
He... he.... Các bạn nói thế e rằng hơi.. hơi chủ quan à nha.. Nói mệt là e rằng phải chờ lâu thôi chứ máy in có khả năng in dc cở đó tôi thấy rồi.. là ở cty tôi, 1 phút chắc phải 100 tờ.. vị chi gần 20p là xong...
ANH TUẤN
 
Upvote 0
Tôi thấy cải tiến cái đoạn mã ( ý tưởng ) của bác ATuấn thì cũng được khối việc hữu ích đấy:
- đặt thêm biến và cho in từ trang đến trang
- Thêm nữa cho bước nhảy là hai thì in trang chẵn hay lẻ
- VV và vv ... các bạn tùy biến nhé.
 
Upvote 0
Ban dùng cái này đi .
Code này là do 1 Anh trên diển đàn giúp cho mình ( Xin lổi Tác giả , lâu quá rồi mình quên mất tên Anh luôn , thiệt là tệ quá . Sory Anh nhiều nhiều hen :)
PHP:
Sub InPhieuThuChi()
On Error Resume Next
S203.Select
Dim m As String
Dim TP As Long
Dim DP As Long
Dim SP As Long

With Application
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
    End With

Select Case MsgBox(" -In Phiêìu Thu : YES" & Chr(13) & Chr(13) & " -In Phiêìu Chi : NO" & Chr(13) & Chr(13) & " HuÒy Lêònh In : CANCEL", vbYesNoCancel, "Thêì DuÞng")
Case vbCancel
    Application.ScreenUpdating = True
    Exit Sub
Case vbYes
    m = "T"
Case vbNo
    m = "C"
End Select
    TP = Application.InputBox("TýÌ Phiêìu sôì:", "Thêì DuÞng", Type:=1)
    DP = Application.InputBox("Ðêìn Phiêìu sôì:", "Thêì DuÞng", Type:=1)

If TP > 0 And DP > 0 And TP <= DP Then
    For SP = TP To DP Step 6
    Range("n1").Value = m & " " & SP
    If Range("c11").Value >= 0 Then ActiveWindow.SelectedSheets.PrintPreview
    'PrintOut Copies:=1
        
    Next SP
Else
MsgBox "Không Coì Phiêìu CâÌn In !!!", vbOKOnly, "Thêì DuÞng"
End If
With Application
    .ScreenUpdating = True
End With
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Mình làm kế toán chủ yếu trên Excel, đã sử dụng đoạn mã sau để in Sổ cái (khoảng 700 trang) nhưng tốn giấy quá nên đành in 02 mặt cho tiết kiệm . Không biết nó có giúp gì được cho bạn không ?

Sub Printer()
Begin_p = InputBox(" In tu trang ? ", "PRINTER")
End_p = InputBox(" In den trang ? ", "PRINTER")

n = Val(End_p) - Val(Begin_p)

kt = InputBox(" In trang chan hay le : Chan = 1 ; Le = 0 ", "PRINTER")

For i = Int(Val(Begin_p) / 2) + 1 To Int((Val(Begin_p) + n) / 2) + 1
If Val(kt) Then
ActiveSheet.PrintOut 2 * i, 2 * i
Else
ActiveSheet.PrintOut (2 * i - 1), (2 * i - 1)
End If
Next i
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom