Chọn Vùng In Có Điều Kiện

Liên hệ QC

tuantu315

Thành viên hoạt động
Tham gia
30/9/13
Bài viết
141
Được thích
38
Chào Anh/Chị Diễn Đàn mong anh chị giúp em thu gọn code hoặc có code nào giải quyết vấn đề chọ vùng in khi thỏa mãn diều kiện cho trước.
Em có viết 1 đoạn code như bên dưới để chọn vùng để in nhưng vấn đề gặp phải là code em quá dài và ko hiệu quả. Em có gởi file lên mong Anh/Chị giúp đỡ . Thanks Ạ

if sheet5.range("A1") >< "" then
Worksheets("Sheet5").PageSetup.PrintArea = "A1:A3"
end if
if sheet5.range("c1") >< "" then
Worksheets("Sheet5").PageSetup.PrintArea = "A1:C3"
end if
........................>
 

File đính kèm

  • gpe.xlsb
    10.3 KB · Đọc: 12
Chào Anh/Chị Diễn Đàn mong anh chị giúp em thu gọn code hoặc có code nào giải quyết vấn đề chọ vùng in khi thỏa mãn diều kiện cho trước.
Em có viết 1 đoạn code như bên dưới để chọn vùng để in nhưng vấn đề gặp phải là code em quá dài và ko hiệu quả. Em có gởi file lên mong Anh/Chị giúp đỡ . Thanks Ạ

if sheet5.range("A1") >< "" then
Worksheets("Sheet5").PageSetup.PrintArea = "A1:A3"
end if
if sheet5.range("c1") >< "" then
Worksheets("Sheet5").PageSetup.PrintArea = "A1:C3"
end if
........................>
Nếu A1<>""
C1<>""
A5<>""
A9<>""
I13<>""
Còn lại là trống thì vùng in như nào?
A1:J16 à?
 
Upvote 0
Ủa, toán tử khác của VBA nay bị đổi rồi hả ta?
 
Upvote 0
Nếu A1<>""
C1<>""
A5<>""
A9<>""
I13<>""
Còn lại là trống thì vùng in như nào?
A1:J16 à?
Dạ anh xem file cho dễ hiểu ạ.
khi các Ô : A1, C1, E1 ,G1, I1, K1, M1, A5, C5, E5 ,G5, I5, K5, M5
A9, C9, E9,G9, I9, K9, M9
A13, C13, E13,G13, I13, K13, M13
Có dữ liệu thì vùng in sẽ được chọn
Ví dụ:
Ô: A1 # "" thì vùng in sẽ chọn là A1:A3
C1 # "" thì vùng in sẽ chọn A1:C3
E1 # "" thì vùng in sẽ chọn A1:E3
................................................> M13
*Note:
Giả Sử Ô A1 = "" và Ô C1 # "" thì vùng in vẫn sẽ là A1:C3 . Thanks Anh/Chị rất nhiều ạ
Bài đã được tự động gộp:


Ủa, toán tử khác của VBA nay bị đổi rồi hả ta?
Bác rãnh giúp em vs Ạ do lỗi typing....
 
Upvote 0
Dạ anh xem file cho dễ hiểu ạ.
khi các Ô : A1, C1, E1 ,G1, I1, K1, M1, A5, C5, E5 ,G5, I5, K5, M5
A9, C9, E9,G9, I9, K9, M9
A13, C13, E13,G13, I13, K13, M13
Có dữ liệu thì vùng in sẽ được chọn
Ví dụ:
Ô: A1 # "" thì vùng in sẽ chọn là A1:A3
C1 # "" thì vùng in sẽ chọn A1:C3
E1 # "" thì vùng in sẽ chọn A1:E3
................................................> M13
*Note:
Giả Sử Ô A1 = "" và Ô C1 # "" thì vùng in vẫn sẽ là A1:C3 . Thanks Anh/Chị rất nhiều ạ
Bài đã được tự động gộp:




Bác rãnh giúp em vs Ạ do lỗi typing....
Mình chưa có hiểu rõ quy luật chọn vùng in như thế nào của bạn. Cái bạn đưa ra mới chỉ là 1 trường hợp. Hãy trả lời cái mình hỏi để xem mình nghĩ có đúng không đã chứ đừng bắt mình đoán ý của bạn
 
Upvote 0
Mình chưa có hiểu rõ quy luật chọn vùng in như thế nào của bạn. Cái bạn đưa ra mới chỉ là 1 trường hợp. Hãy trả lời cái mình hỏi để xem mình nghĩ có đúng không đã chứ đừng bắt mình đoán ý của bạn
Tôi nghĩ là cứ quét từ ô dưới cùng lên, gặp ô khác rỗng là chọn vùng đến đó
 
Upvote 0
Mình chưa có hiểu rõ quy luật chọn vùng in như thế nào của bạn. Cái bạn đưa ra mới chỉ là 1 trường hợp. Hãy trả lời cái mình hỏi để xem mình nghĩ có đúng không đã chứ đừng bắt mình đoán ý của bạn
Nếu A1<>""
C1<>""
A5<>""
A9<>""
I13<>""
Còn lại là trống thì vùng in như nào?
A1:J16 à?
Xin trả lởi câu hỏi của anh ạ:
Vậy vùng in sẽ là A1 : A3 , C1:C3, A5:A7, A9:A11, I13:I15
--> trường hợp như vậy sẽ không thể xảy ra ạ tại vì em đã bắt lỗi ngay từ đầu nên dữ liệu sẽ theo thứ tự là:

A1, C1, E1 ,G1, I1, K1, M1, A5, C5, E5 ,G5, I5, K5, M5 ,A9, C9, E9,G9, I9, K9, M9 , A13, C13, E13,G13, I13, K13, M13
Ô A1 bắt buộc phải có dữ liệu rồi đến Ô C1 và Ô E1 .... Không thể nào Ô E1 có dữ liệu mà Ô C1 vs Ô A1 trống
 
Upvote 0
Dạ Anh thấy ở ô nào Ạ xem em xem ko thấy!!1
Thử code này coi
Mã:
Sub ABC()
    Dim Rng As Range, Vung As Range, T
    With Sheets("in tem")
        For Each Rng In Range("A1:M1,A5:M5,A9:M9,A13:M13")
            If Rng.Value <> "" Then
                Set Vung = Union(Rng, Rng.Resize(3, 1))
                T = T & "," & Vung.Address
            End If
        Next
        .PageSetup.PrintArea = Right(T, Len(T) - 1)
    End With
End Sub
 
Upvote 0
Thử code này coi
Mã:
Sub ABC()
    Dim Rng As Range, Vung As Range, T
    With Sheets("in tem")
        For Each Rng In Range("A1:M1,A5:M5,A9:M9,A13:M13")
            If Rng.Value <> "" Then
                Set Vung = Union(Rng, Rng.Resize(3, 1))
                T = T & "," & Vung.Address
            End If
        Next
        .PageSetup.PrintArea = Right(T, Len(T) - 1) Báo lỗi Unable to set the print area property ò the page set up class
    End With
End Sub

Note: Dim Rng As Range, Vung As Range, T& nếu để như vậy thì báo lỗi type missed nên em bỏ dấu & sửa lại là Dim Rng As Range, Vung As Range, T thì Bị lỗi ngay dòng này rồi Anh ơi
.PageSetup.PrintArea = Right(T, Len(T) - 1) Báo lỗi Unable to set the print area property ò the page set up class
 
Upvote 0
Note: Dim Rng As Range, Vung As Range, T& nếu để như vậy thì báo lỗi type missed nên em bỏ dấu & sửa lại là Dim Rng As Range, Vung As Range, T thì Bị lỗi ngay dòng này rồi Anh ơi
.PageSetup.PrintArea = Right(T, Len(T) - 1) Báo lỗi Unable to set the print area property ò the page set up class
Sửa lại chút
Mã:
Sub ABC()
    Dim Rng As Range, Vung As Range, T
    With Sheets("in tem")
        For Each Rng In Range("A1:M1,A5:M5,A9:M9,A13:M13")
            If Rng.Value <> "" Then
                Set Vung = Union(Rng, Rng.Resize(3, 2))
                T = T & "," & Vung.Address
            End If
        Next
        .PageSetup.PrintArea = Right(T, Len(T) - 1)
    End With
End Sub
 
Upvote 0
Sửa lại chút
Mã:
Sub ABC()
    Dim Rng As Range, Vung As Range, T
    With Sheets("in tem")
        For Each Rng In Range("A1:M1,A5:M5,A9:M9,A13:M13")
            If Rng.Value <> "" Then
                Set Vung = Union(Rng, Rng.Resize(3, 2))
                T = T & "," & Vung.Address
            End If
        Next
        .PageSetup.PrintArea = Right(T, Len(T) - 1)
    End With
End Sub
.PageSetup.PrintArea = Right(T, Len(T) - 1) dòng này báo lỗi Unable to set the print area property ò the page set up class
 
Upvote 0
Web KT
Back
Top Bottom