Liệu excel có chạy kịp!

Liên hệ QC

duyhuynh9922

Thành viên mới
Tham gia
25/10/21
Bài viết
16
Được thích
8
Xin chào các anh, chi. Hiện tại em có 1 thắc mắc là khi thực hiện đoạn code này với số lượng khoảng 3000 công nhân thì liệu excel có kịp load đúng dữ liệu cần in không ạ. Với mỗi ô tô màu vàng thì đều sử dụng hàm vLookup. Mong đc giải đáp!!!
Mã:
Public Sub PRINTING()
    Dim MAX, U, Y, A As Integer
    Dim SARR()
    Dim WSPR, WSDT As Worksheet
    Dim DA, DB, DC, DD, DE
    Application.ActivePrinter = "RICOH Aficio MP 4001 PCL 6 ON NE00:"
    Application.Calculation = xlCalculationAutomatic
    Set WSDT = ThisWorkbook.Sheets("DD")
    Set WSPR = ThisWorkbook.Sheets("FF")
    MAX = WSDT.Range("A" & Rows.Count).End(xlUp).Row
    SARR = WSDT.Range("A1:C" & MAX).Value

DC = MAX Mod 5

If DC = 0 Then
   
    For A = 1 To UBound(SARR)
       
            Y = Y + 1
            If Y = 1 Then
                WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf Y = 2 Then
                    WSPR.Range("A15").Value = SARR(A, 1)
            ElseIf Y = 3 Then
                    WSPR.Range("A25").Value = SARR(A, 1)
            ElseIf Y = 4 Then
                    WSPR.Range("A35").Value = SARR(A, 1)
            ElseIf Y = 5 Then
                    WSPR.Range("A45").Value = SARR(A, 1)
                    Y = 0
                    ActiveSheet.PageSetup.PrintArea = "$A$1:$R$49"
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If
             
       
     
       Next A

ElseIf DC = 1 Then
    For A = 1 To UBound(SARR)
        DA = DA + 1
            If DA <= MAX - 1 Then
            Y = Y + 1
            If Y = 1 Then
                WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf Y = 2 Then
                    WSPR.Range("A15").Value = SARR(A, 1)
            ElseIf Y = 3 Then
                    WSPR.Range("A25").Value = SARR(A, 1)
            ElseIf Y = 4 Then
                    WSPR.Range("A35").Value = SARR(A, 1)
            ElseIf Y = 5 Then
                    WSPR.Range("A45").Value = SARR(A, 1)
                    Y = 0
                    ActiveSheet.PageSetup.PrintArea = "$A$1:$R$49"
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If

        Else
            WSPR.Range("A5").Value = SARR(A, 1)
            ActiveSheet.PageSetup.PrintArea = "$A$1:$R$10"
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
     
      End If
       Next A

ElseIf DC = 2 Then
     For A = 1 To UBound(SARR)
        DA = DA + 1
            If DA <= MAX - 2 Then
            Y = Y + 1
            If Y = 1 Then
                WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf Y = 2 Then
                    WSPR.Range("A15").Value = SARR(A, 1)
            ElseIf Y = 3 Then
                    WSPR.Range("A25").Value = SARR(A, 1)
            ElseIf Y = 4 Then
                    WSPR.Range("A35").Value = SARR(A, 1)
            ElseIf Y = 5 Then
                    WSPR.Range("A45").Value = SARR(A, 1)
                    Y = 0
                    ActiveSheet.PageSetup.PrintArea = "$A$1:$R$49"
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If

        Else
            ActiveSheet.PageSetup.PrintArea = "$A$1:$R$20"
            DB = DB + 1
            If DB = 1 Then
            WSPR.Range("A5").Value = SARR(A, 1)
            Else
            WSPR.Range("A15").Value = SARR(A, 1)
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If
      End If
       Next A

ElseIf DC = 3 Then
        For A = 1 To UBound(SARR)
        DA = DA + 1
            If DA <= MAX - 3 Then
            Y = Y + 1
            If Y = 1 Then
                WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf Y = 2 Then
                    WSPR.Range("A15").Value = SARR(A, 1)
            ElseIf Y = 3 Then
                    WSPR.Range("A25").Value = SARR(A, 1)
            ElseIf Y = 4 Then
                    WSPR.Range("A35").Value = SARR(A, 1)
            ElseIf Y = 5 Then
                    WSPR.Range("A45").Value = SARR(A, 1)
                    Y = 0
                    ActiveSheet.PageSetup.PrintArea = "$A$1:$R$49"
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If

        Else
            ActiveSheet.PageSetup.PrintArea = "$A$1:$R$30"
            DB = DB + 1
            If DB = 1 Then
            WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf DB = 2 Then
            WSPR.Range("A15").Value = SARR(A, 1)
            Else
            WSPR.Range("A25").Value = SARR(A, 1)
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If
      End If
       Next A

ElseIf DC = 4 Then
       For A = 1 To UBound(SARR)
        DA = DA + 1
            If DA <= MAX - 4 Then
            Y = Y + 1
            If Y = 1 Then
                WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf Y = 2 Then
                    WSPR.Range("A15").Value = SARR(A, 1)
            ElseIf Y = 3 Then
                    WSPR.Range("A25").Value = SARR(A, 1)
            ElseIf Y = 4 Then
                    WSPR.Range("A35").Value = SARR(A, 1)
            ElseIf Y = 5 Then
                    WSPR.Range("A45").Value = SARR(A, 1)
                    Y = 0
                    ActiveSheet.PageSetup.PrintArea = "$A$1:$R$49"
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If

        Else
            ActiveSheet.PageSetup.PrintArea = "$A$1:$R$40"
            DB = DB + 1
            If DB = 1 Then
            WSPR.Range("A5").Value = SARR(A, 1)
            ElseIf DB = 2 Then
            WSPR.Range("A15").Value = SARR(A, 1)
            ElseIf DB = 3 Then
            WSPR.Range("A25").Value = SARR(A, 1)
            Else
            WSPR.Range("A35").Value = SARR(A, 1)
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                    IgnorePrintAreas:=False
            End If
      End If
       Next A
Else
End If
End Sub
Untitled.jpg
 
Lần chỉnh sửa cuối:
Trường hợp này thì phải do printer server, đường truyền, ưu tiên sử dụng (nếu nhiều nguồi cùng in thì máy ưu tiên ai) chứ "bộ nhớ máy in" như bạn nói ở bài #17 là chuyện nhỏ.
Khi thuê máy, nhờ thợ cài vào máy cần in nhiều không có chia sẻ anh ơi. Còn máy laser đúng như anh nói in nhiều nóng máy lên là kẹt giấy...kéo hộc giấy ra chờ cho máy nguội in tiếp. (Người sử dụng thường quan tâm tới tốc độ máy in bao nhiêu tờ/phút chứ không mấy người đủ hiểu biết để để ý tới những cái khác đâu anh.)
Bài đã được tự động gộp:

Trường hợp này thì phải do printer server, đường truyền, ưu tiên sử dụng (nếu nhiều nguồi cùng in thì máy ưu tiên ai) chứ "bộ nhớ máy in" như bạn nói ở bài #17 là chuyện nhỏ.
Có trường hợp em không hiểu: có máy khi mình gửi 1 lệnh in report access khoảng 500 trang so với 500 lệnh in trong excel, mỗi lệnh 1 trang thì excel in nhanh hơn, vì trong excel khi nhấn nút nó gửi lệnh in tức thì, report access tốn thời gian load report nên chậm hơn. Nhưng có máy in 500 lệnh in trong excel nó cực kì chậm, giấy nó cứ từ từ bò ra khay cứ như in đồ họa còn report access thì in bình thường.
 
Lần chỉnh sửa cuối:
Upvote 0
Khi thuê máy, nhờ thợ cài vào máy cần in nhiều không có chia sẻ anh ơi. Còn máy laser đúng như anh nói in nhiều nóng máy lên là kẹt giấy...kéo hộc giấy ra chờ cho máy nguội in tiếp. (Người sử dụng thường quan tâm tới tốc độ máy in bao nhiêu tờ/phút chứ không mấy người đủ hiểu biết để để ý tới những cái khác đâu anh.)
1. Lỗi do người ký hợp đồng thuê máy. Người này lỡ nhận phong bì của bên cho thuê rồi thì các phòng khác phải chịu ngậm bồ hòn thôi.
Hợp đồng chính chắn có mục bảo đảm tầm vực, kghar năng, và công suất [hệ thống] máy.

Có trường hợp em không hiểu: có máy khi mình gửi 1 lệnh in report access khoảng 500 trang so với 500 lệnh in trong excel, mỗi lệnh 1 trang thì excel in nhanh hơn, vì trong excel khi nhấn nút nó gửi lệnh in tức thì, report access tốn thời gian load report nên chậm hơn. Nhưng có máy in 500 lệnh in trong excel nó cực kì chậm, giấy nó cứ từ từ bò ra khay cứ như in đồ họa còn report access thì in bình thường.
Phần lớn là do khá năng trữ (cache) các bản in trong dãy đợi (queue). Khả năng này một mặt do khả năng máy, mặt khác do mạng (kể cả printer server), và cuối cùng còn do khả năng của quản trị mạng.

Người quản trị mạng không phải chỉ ngồi đó đợi nối máy, sửa máy. Đó là công việc của lính, quản trị chỉ ký tên thôi. Công việc chính của quản trị là theo dõi (monitor) hiệu quả của mạng và chỉnh sửa, lập ưu tiên,... Cong việc cần rất nhiều kỹ năng và kinh nghiệm. Tương đương với Quản Đốc phân xưởng hay Trưởng Phòng Kỹ Thuật.
(Về sau này, việc chống bị phá phách cũng mất khá nhiều thời gian của quản trị)
 
Upvote 0
1. Lỗi do người ký hợp đồng thuê máy. Người này lỡ nhận phong bì của bên cho thuê rồi thì các phòng khác phải chịu ngậm bồ hòn thôi.
Hợp đồng chính chắn có mục bảo đảm tầm vực, kghar năng, và công suất [hệ thống] máy.


Phần lớn là do khá năng trữ (cache) các bản in trong dãy đợi (queue). Khả năng này một mặt do khả năng máy, mặt khác do mạng (kể cả printer server), và cuối cùng còn do khả năng của quản trị mạng.

Người quản trị mạng không phải chỉ ngồi đó đợi nối máy, sửa máy. Đó là công việc của lính, quản trị chỉ ký tên thôi. Công việc chính của quản trị là theo dõi (monitor) hiệu quả của mạng và chỉnh sửa, lập ưu tiên,... Cong việc cần rất nhiều kỹ năng và kinh nghiệm. Tương đương với Quản Đốc phân xưởng hay Trưởng Phòng Kỹ Thuật.
(Về sau này, việc chống bị phá phách cũng mất khá nhiều thời gian của quản trị)
Những cái anh nói em cũng hiểu chút chút nhưng: vị trí thì tầng dưới cùng, code thì chỉ cóp nhặt nên không đủ trình để bắt chẹt lại, cũng có xung đột chút đỉnh rồi...thua.
 
Upvote 0
Những cái anh nói em cũng hiểu chút chút nhưng: vị trí thì tầng dưới cùng, code thì chỉ cóp nhặt nên không đủ trình để bắt chẹt lại, cũng có xung đột chút đỉnh rồi...thua.
Khi tôi còn làm ở vị trí "tầng trệt, tầng hầm", nhiều việc tôi vẫn nhờ mấy tay quản lý mạng, quản lý CSDL giúp được. Chỉ cần các kỹ năng sau:
- Chịu khó vui vẻ với các phòng khác và các cấp cao.
- Không ỷ mình trẻ rồi dùng ngôn ngữ trẻ con. Những người cấp cao thường đã đứng tuổi, họ có thể tin người trẻ nhưng không tin ngôn ngữ trẻ.
- Khi nhờ thì phải chân thật. Tránh nói phóng đại. Người kinh nghiệm nghe con số phóng đại là họ nản "cái thằng này nó chỉ thử thôi chẳng thực tâm muốn làm". Như vậy nhờ sao được?
 
Upvote 0
Web KT

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

Back
Top Bottom