Hỏi về code Hide row (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

vova2209

Thành viên tích cực
Tham gia
5/4/17
Bài viết
835
Được thích
112
Giới tính
Nam
Nghề nghiệp
Đường bộ
Em có đoạn code hide row: khi ẩn xong soi kính trước khi in thì nó vẫn hiện, nhưng thành trang trắng tinh. Làm thế nào để hide ẩn luôn khi in ra nó không hiện ra nữa. Em xin cảm ơn!
Sub ShowHideNoiBo()
Rows("2:63").EntireRow.Hidden = True
End Sub
 
File đây ạ! ẩn xong soi in vẫn bị nhìn thấy!
 

File đính kèm

Upvote 0
File đây ạ! ẩn xong soi in vẫn bị nhìn thấy!
Vậy cách làm của bạn sẽ như sau:
Khi từ dòng.... đến dòng .... mà ẩn thì in vùng dữ liệu kia, ví dụ:
PHP:
Sub ShowHideNoiBo()
      Rows("2:63").EntireRow.Hidden = True
     Range("C64:AF95").PrintOut
   ' Debug.Print Range("C64:AF95").Address
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy cách làm của bạn sẽ như sau:
Khi từ dòng.... đến dòng .... mà ẩn thì in vùng dữ liệu kia, ví dụ:
PHP:
Sub ShowHideNoiBo()
      Rows("2:63").EntireRow.Hidden = True
     Range("C64:AF95").PrintOut
   ' Debug.Print Range("C64:AF95").Address
End Sub
KO được anh ơi! có file đính kèm bài #2 ý
 
Upvote 0
Tôi thấy có vẻ bạn làm ngược hay sao ấy???
Nó ra trang trắng bởi vì bạn đã set vùng In: Print Area là cố định.

Đầu tiên cho Full vùng đều Hidden = True
Muốn in vùng nào thì phải Hidden = False, và đồng thời Code Add cho nó cái Print Area là vùng đó luôn chứ.
Vùng in là mình đá set trước! khi mình ẩn tay 1 2 dòng xong soi lên cũng đều bị ẩn đi, nhưng khi dùng code ẩn xong soi vẫn thấy nhưng là trang trắng tinh (file đính kèm bài #2)
 
Upvote 0
Thử như vầy. Thêm cái Sub ShowAll gắn vào cái nút Show của bạn

Mã:
Sub ShowHideNoiBo()
    Rows("2:186").EntireRow.Hidden = True
    Rows("2:63").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C2:AF63").Address
    'ActiveSheet.PrintPreview
End Sub

Sub ShowHidePYC()
    Rows("2:186").EntireRow.Hidden = True
    Rows("64:96").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C64:AF96").Address
    'ActiveSheet.PrintPreview
End Sub

Sub ShowHideAB()
    Rows("2:186").EntireRow.Hidden = True
    Rows("97:186").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C97:AF186").Address
    'ActiveSheet.PrintPreview
End Sub

Sub ShowAll()
    Rows("2:186").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C2:AF186").Address
End Sub
Đúng như thế này! nhưng code chạy rùa quá anh ơi, có cần tắt chế độ tính toán và cập nhật màn hình ko nhỉ
 
Upvote 0
Thử như vầy. Thêm cái Sub ShowAll gắn vào cái nút Show của bạn

Mã:
Sub ShowHideNoiBo()
    Rows("2:186").EntireRow.Hidden = True
    Rows("2:63").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C2:AF63").Address
    'ActiveSheet.PrintPreview
End Sub

Sub ShowHidePYC()
    Rows("2:186").EntireRow.Hidden = True
    Rows("64:96").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C64:AF96").Address
    'ActiveSheet.PrintPreview
End Sub

Sub ShowHideAB()
    Rows("2:186").EntireRow.Hidden = True
    Rows("97:186").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C97:AF186").Address
    'ActiveSheet.PrintPreview
End Sub

Sub ShowAll()
    Rows("2:186").EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = Range("C2:AF186").Address
End Sub
Làm Function: cho cái cập nhập này như nào anh nhỉ
Sub ShowHideNoiBo()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Rows("2:186").EntireRow.Hidden = True
Rows("2:63").EntireRow.Hidden = False
ActiveSheet.PageSetup.PrintArea = Range("C2:AF63").Address
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
 
Upvote 0
Tôi chưa thấy ai dùng Phân Xưng mà Hide với Unhide dòng cột cả. Thì ban cứ Sub, Sau đó trong thủ tục nào cần nó thì bạn cứ gọi nó (Call ABC) chẳng hạn...
à em nhầm! nếu ko muốn nháy thì tắt ScreenUpdating thôi anh nhỉ. cảm ơn anh nhiều
 
Upvote 0
Web KT

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

Back
Top Bottom