Phiếu in tự động không chạy theo số thứ tự

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phungvanton

Thành viên mới
Tham gia
17/7/12
Bài viết
37
Được thích
-3
Dear All !
Em đang học VBA. Khi tạo phiếu in Sheet 2 nhập dữ liệu tự động nhập vào sheet "Data".
Tuy vậy sau khi em tạo các phiếu chi hoặc thu số 2 thì khi nhập dữ liệu tự động sheet "Data" lại tự động nhảy lên 1 số.
Mọi người chỉ giúp ạ.
Em cảm ơn ạ !
 

File đính kèm

  • in phieu tu dong.xlsm
    25 KB · Đọc: 24
Tuy vậy sau khi em tạo các phiếu chi hoặc thu số 2 thì khi nhập dữ liệu tự động sheet "Data" lại tự động nhảy lên 1 số.
Sửa như này coi sao nào
Mã:
Sub luuvain()
    Dim iR&
    ActiveSheet.PrintOut
    With Sheets("Data")
        iR = .Range("A" & Rows.Count).End(3).Row + 1
        .Range("A" & iR).Value = Sheet2.Range("m4").Value
        .Range("B" & iR).Value = Sheet2.Range("j4").Value
        .Range("C" & iR).Value = Sheet2.Range("j5").Value
        .Range("D" & iR).Value = Sheet2.Range("d7").Value
        .Range("E" & iR).Value = Sheet2.Range("c8").Value
        .Range("F" & iR).Value = Sheet2.Range("b9").Value
        .Range("G" & iR).Value = Sheet2.Range("b10").Value
        .Range("H" & iR).Value = Sheet2.Range("b11").Value
        .Range("I" & iR).Value = Sheet2.Range("b13").Value
    End With
End Sub
 
Upvote 0
Nếu (chỉ nếu thôi) chỗ này bạn muốn chuyển thành vòng lặp thì làm thế nào?

(tôi chỉ chia sẻ với các bạn thôi chứ thấy cái màn 'đía ồn" là nhức đầu rồi)
Hihi. cám ơn chú ạ. không biết cháu viết thế này đã là tối ưu chưa. Nhưng hi vọng chú chỉ thêm ạ. tại sửa để bạn ấy hiểu chứ cho vào vòng lặp sợ bạn ấy lại không hiểu á
Mã:
Sub luuvain()
    Dim iR&, s, j&
    s = Array("M4", "J4", "J5", "D7", "C8", "B9", "B10", "B11", "B13")
    ActiveSheet.PrintOut
    With Sheets("Data")
        iR = .Range("A" & Rows.Count).End(3).Row + 1
        For j = 1 To 9
            .Cells(iR, j).Value = Sheet2.Range(s(j - 1)).Value
        Next
    End With
End Sub
 
Upvote 0
Hihi. cám ơn chú ạ. không biết cháu viết thế này đã là tối ưu chưa. Nhưng hi vọng chú chỉ thêm ạ. tại sửa để bạn ấy hiểu chứ cho vào vòng lặp sợ bạn ấy lại không hiểu á
...
"bạn ấy" là ai? Tây con thì tôi chả cần. Tôi có hiểu họ đâu mà cần họ hiểu tôi.

For Each rg in Sheet2.Range("M4, J4, J5, D7, C8, B9, B10, B11, B13")
j = j + 1
.Cells(iR, j).Value = rg.Value
Next e

Vầy cũng được:
Set SrcRanges = Sheet2.Range("M4, J4, J5, D7, C8, B9, B10, B11, B13")
For j = 1 To SrcRanges.Areas.Count
.Cells(iR, j).Value = SrcRanges.Areas(j).Value
Next
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom