Cần giúp đỡ viết code VBA ẩn dòng trống ko có dữ liệu và co dòng vừa trong trang >> (1 người xem)

Liên hệ QC

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

alibaba2209

Thành viên thường trực
Tham gia
4/12/10
Bài viết
283
Được thích
13
Cần giúp đỡ viết code VBA ẩn dòng trống ko có dữ liệu và co dòng vừa trong trang theo khống chế chiều cao dòng min và theo Range vùng điều kiện.. có file kèm theo bên dưới

- Nếu từ cột Range("B13:G107") dữ liệu trống sẽ tự động ẩn
- Và khóa phần Range("B108:G116") sẽ dồn vừa đủ trong trang >> có thể co dòng Range("B13:G107") chiều cao tối thiểu của dòng là 14. Nếu Range("B13:G107") đã co chiều cao dòng 14 mà Range("B13:G107") không nằm trong trang thì Vùng Range("B13:G107") chiều cao dòng sẽ dãn ra và thò sang trang mới tối thiểu Range("B108:G116") + thêm 4 dòng sát bên trên sẽ chuyển sang trang mới

Mong các đại ka giúp đỡ!
 
Lần chỉnh sửa cuối:
help me!.........................
 
Cần giúp đỡ viết code VBA ẩn dòng trống ko có dữ liệu và co dòng vừa trong trang theo khống chế chiều cao dòng min và theo Range vùng điều kiện.. có file kèm theo bên dưới

- Nếu từ cột Range("B13:G107") dữ liệu trống sẽ tự động ẩn
- Và khóa phần Range("B108:G116") sẽ dồn vừa đủ trong trang >> có thể co dòng Range("B13:G107") chiều cao tối thiểu của dòng là 14. Nếu Range("B13:G107") đã co chiều cao dòng 14 mà Range("B13:G107") không nằm trong trang thì Vùng Range("B13:G107") chiều cao dòng sẽ dãn ra và thò sang trang mới tối thiểu Range("B108:G116") + thêm 4 dòng sát bên trên (mầu hồng) nằm ở trang mới

Mong các đại ka giúp đỡ!

bạn thử xem, tôi cũng chỉ dzọc thử thôi, đại khái là dồn nó dzô một trang, ko dồn được thì dồn 2, 3 trang
Mã:
Sub pagsetup()
Dim i, lr
Range([b13], [b107]).EntireRow.Hidden = False

lr = Application.Match(1000, Range("A13:a107"))
If TypeName(lr) <> "Error" Then
    If lr < 107 Then Range("b" & lr - 1, "b107").EntireRow.Hidden = True
End If
    With ActiveSheet.PageSetup
        Do While .Zoom < 90
            i = i + 1
            .PrintArea = "b1:g116"
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = i
            ExecuteExcel4Macro ("PAGE.SETUP(,,,,,,,,,,,,{#N/A,#N/A})")
        Loop
    End With
End Sub
 
Lần chỉnh sửa cuối:
bạn thử xem, tôi cũng chỉ dzọc thử thôi, đại khái là dồn nó dzô một trang, ko dồn được thì dồn 2, 3 trang
Mã:
Sub pagsetup()
Dim i, lr
Range([b13], [b107]).EntireRow.Hidden = False

lr = Application.Match(1000, Range("A13:a107"))
If TypeName(lr) <> "Error" Then
    If lr < 107 Then Range("b" & lr - 1, "b107").EntireRow.Hidden = True
End If
    With ActiveSheet.PageSetup
        Do While .Zoom < 90
            i = i + 1
            .PrintArea = "b1:g116"
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = i
            ExecuteExcel4Macro ("PAGE.SETUP(,,,,,,,,,,,,{#N/A,#N/A})")
        Loop
    End With
End Sub
Anh ơi! ở trường hợp khi ô I7 kích lên số 1009 thì nó ẩn cả dòng có dữ liệu, kích lên 1010 thì nó ẩn lại không hết.. a sửa lại dùm với
 
Ô I7 kích lên 1011 thừa hẳn 1 trang mà nó ko dồn lại anh à
 
help me! đại ka sửa lại dùm code với! code vẫn bị ẩn dòng có dữ liệu, nó chỉ ẩn mạc định theo code từ dòng 94:107, nếu dòng 93 << ko có giữ liệu nó cũng không ẩn , và nếu dòng 94 >> có giữ liệu thì nó cũng ẩn luôn! mong giúp đỡ..
 
help me! đại ka sửa lại dùm code với! code vẫn bị ẩn dòng có dữ liệu, nó chỉ ẩn mạc định theo code từ dòng 94:107, nếu dòng 93 << ko có giữ liệu nó cũng không ẩn , và nếu dòng 94 >> có giữ liệu thì nó cũng ẩn luôn! mong giúp đỡ..

cái này chỉ ẩn dòng thôi, còn định dạng trang ko chơi....hihiih
Mã:
Sub pagsetup()
Dim i, lr
Range([b13], [b107]).EntireRow.Hidden = False

lr = Application.Match(1000, Range("b13:b107"))
If TypeName(lr) <> "Error" Then
    If lr < 107 Then Range("b" & lr + 12, "b107").EntireRow.Hidden = True
End If
    
End Sub
 
cái việc định dạng trang này tôi cũng đã từng gặp qua, dữ liệu thì luôn luôn thay đổi , lúc ít lúc nhiều, mà khách hàng thì cứ bảo khăn khăn cho nó nằm vào 1 trang, chỉnh đi chỉnh lại vài lần rồi bye bye luôn
 
cái này chỉ ẩn dòng thôi, còn định dạng trang ko chơi....hihiih
Mã:
Sub pagsetup()
Dim i, lr
Range([b13], [b107]).EntireRow.Hidden = False

lr = Application.Match(1000, Range("b13:b107"))
If TypeName(lr) <> "Error" Then
    If lr < 107 Then Range("b" & lr + 12, "b107").EntireRow.Hidden = True
End If
    
End Sub
nguyên code ẩn dòng cũng không ổn rồi bác ơi!
 
không biết có thể thực hiện như ý e trình bầy được không nhỉ.. em làm xây dựng nên phải làm nhiều bảng khối lượng chi tiết và bảng cao độ chi tiết, mỗi 1 đoạn lại phải căn chỉnh mất rất nhiều thơi gian.. còn bác nào cao thủ giúp em vơi!
 
không biết có thể thực hiện như ý e trình bầy được không nhỉ.. em làm xây dựng nên phải làm nhiều bảng khối lượng chi tiết và bảng cao độ chi tiết, mỗi 1 đoạn lại phải căn chỉnh mất rất nhiều thơi gian.. còn bác nào cao thủ giúp em vơi!

tôi cũng có chỉnh chiều cao của row để chép qua word
bạn phải ước lượng
thí dụ, tối đa 50 hàng có thể nhét vào một trang==>tính xem mỗi hàng cao bao nhiêu, khi nó chỉ có 30,20,10 hàng thì chiều cao bao nhiêu
tương tự như vậy, với 2 trang, 3 trang
nói chung là khá công phu và tốn nhiều thời gian, nên chắc bạn phải tư làm thôi...............hihihihih
 
tôi cũng có chỉnh chiều cao của row để chép qua word
bạn phải ước lượng
thí dụ, tối đa 50 hàng có thể nhét vào một trang==>tính xem mỗi hàng cao bao nhiêu, khi nó chỉ có 30,20,10 hàng thì chiều cao bao nhiêu
tương tự như vậy, với 2 trang, 3 trang
nói chung là khá công phu và tốn nhiều thời gian, nên chắc bạn phải tư làm thôi...............hihihihih
em không thạo về vba chỉ biết sử dụng. Em nghĩ vba có thể logic được, giống như các phần mềm dự toán khi insert hạng mục vào nó căn chỉnh được trong khổ trang giấy như kiểu em trình bầy đó
 
tôi cũng có chỉnh chiều cao của row để chép qua word
bạn phải ước lượng
thí dụ, tối đa 50 hàng có thể nhét vào một trang==>tính xem mỗi hàng cao bao nhiêu, khi nó chỉ có 30,20,10 hàng thì chiều cao bao nhiêu
tương tự như vậy, với 2 trang, 3 trang
nói chung là khá công phu và tốn nhiều thời gian, nên chắc bạn phải tư làm thôi...............hihihihih

- Bảng tính của em dòng nó không cố định khoảng 1~3 trang nếu để 3 trang trong khi có đoạn 1 trang thì chữ kí nằm ở trang thứ 3 (2 trang trống thì rất vô lí chữ kí ở trang đó không có giá trị)
- Em không thạo về vba chỉ biết sử dụng. Em nghĩ vba có thể logic được, giống như các phần mềm dự toán khi insert hạng mục vào nó căn chỉnh được trong khổ trang giấy như kiểu em trình bầy đó
 
Kỹ thuật không có gì mới mẻ, bạn dễ dàng tạo ra liên kết giữa CDPS với SNK thông qua sử dụng Name NHATKY_Range đã được định nghĩa trong Workbook nhật ký bằng việc sử dụng kết hợp hàm INDIRECT. Công thức sau sẽ liên kết thông tin từ SNK sang CDPS ở mức Worksheet:
 
chạy thử file này xem sao

Đại sư phụ! wow quá tuyệt e test rồi chạy ngon lắm, Cái ô J5 có ý nghĩa gì đấy ạ
Anh có thể update thêm code vùng in luôn đến cái dòng có dữ liêu cuối cùng, em sửa code chỗ vùng in không chạy được không biết sai cái gì nhỉ a ( .PageSetup.PrintArea = .Range("B1:G" & .Range("G" & Row.Count).End(3).Row))
 
Lần chỉnh sửa cuối:
Đại sư phụ! wow quá tuyệt e test rồi chạy ngon lắm, Cái ô J5 có ý nghĩa gì đấy ạ
Anh có thể update thêm code vùng in luôn đến cái dòng có dữ liêu cuối cùng, em sửa code chỗ vùng in không chạy được không biết sai cái gì nhỉ a ( .PageSetup.PrintArea = .Range("B1:G" & .Range("G" & Row.Count).End(3).Row))

11.7 là chiều dài khổ giấy A4 , khi bạn nhấn vào nút Print preview có ghi thông số khổ giấy đang chọn là A4 ( 8.27 x 11.69)
bạn mà in khổ giấy khác thì ô J5 phải sửa theo chiều dài của khổ giấy đó


J8hqGZRYEjs1ywjlPeExKuXvn_3yqmStL82lrUPfrg8=w436-h388-no


khi code đang chạy thì bắt buộc phải chọn vùng in là "B1:G300" . code chạy xong rồi muốn in vùng nào tùy . bạn trang trí vùng "B1:G116" mà hỏi code tìm dòng cuối là sao ?

muốn chọn lại vùng in thì chèn thêm 1 dòng nữa vào cuối của sub pagsetup() đại khái như

Mã:
    ...........................
    tRowHei = (lp * pageHei - lp * headRowHei - .Range("A1:A10").Height) / rowCount
        .Range("A13:A107").SpecialCells(xlCellTypeVisible).EntireRow.RowHeight = tRowHei
    End If
    .PageSetup.PrintArea = "B1:G116"
End With
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
End Sub
 
11.7 là chiều dài khổ giấy A4 , khi bạn nhấn vào nút Print preview có ghi thông số khổ giấy đang chọn là A4 ( 8.27 x 11.69)
bạn mà in khổ giấy khác thì ô J5 phải sửa theo chiều dài của khổ giấy đó


J8hqGZRYEjs1ywjlPeExKuXvn_3yqmStL82lrUPfrg8=w436-h388-no


khi code đang chạy thì bắt buộc phải chọn vùng in là "B1:G300" . code chạy xong rồi muốn in vùng nào tùy . bạn trang trí vùng "B1:G116" mà hỏi code tìm dòng cuối là sao ?

muốn chọn lại vùng in thì chèn thêm 1 dòng nữa vào cuối của sub pagsetup() đại khái như

Mã:
    ...........................
    tRowHei = (lp * pageHei - lp * headRowHei - .Range("A1:A10").Height) / rowCount
        .Range("A13:A107").SpecialCells(xlCellTypeVisible).EntireRow.RowHeight = tRowHei
    End If
    .PageSetup.PrintArea = "B1:G116"
End With
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
End Sub
Ngon rồi sư phụ à! còn 1 việc nữa!
Nếu dùng nguyên A4 thì sửa lại code J5 như nào ạ "pageHei = .[J5].Value * 73 - .PageSetup.TopMargin - .PageSetup.BottomMargin" >> * 73 trong này có ý nghĩa như nào sư phụ
Muốn update cho tất cả các sheep trong file thì làm như nào ạ
 
Lần chỉnh sửa cuối:
Ngon rồi sư phụ à! còn 1 việc nữa!
Nếu dùng nguyên A4 thì sửa lại code J5 như nào ạ "pageHei = .[J5].Value * 73 - .PageSetup.TopMargin - .PageSetup.BottomMargin" >> * 73 trong này có ý nghĩa như nào sư phụ
Muốn update cho tất cả các sheep trong file thì làm như nào ạ
đừng kêu tôi là sư phụ . tôi nghe nhức đầu . tôi cũng chỉ giống như bạn đã từng gặp vấn đề đã từng hỏi . giờ tôi có tí kinh nghiệm thì tôi giúp lại người khác . nguyên A4 là cái gì ? không hiểu .
số đó phải là 72 đó tôi viết nhầm . nó là hệ số chuyển đơn vị từ inches sang points
1 inches = 72 points
trong file bạn đưa lên có 2 sheet mà tôi thấy đã khác xa nhau về cấu trúc thì làm sao tôi dám viết code áp dụng trên mọi sheet
 
11.7 là chiều dài khổ giấy A4 , khi bạn nhấn vào nút Print preview có ghi thông số khổ giấy đang chọn là A4 ( 8.27 x 11.69)
bạn mà in khổ giấy khác thì ô J5 phải sửa theo chiều dài của khổ giấy đó
[/CODE]

nhiều chuyện chút nha đai ca........hihihihi
sao đai ca ko lấy thông số page setup vào luôn mà phải nhập tay
chơi luôn cho "ló máu"..........hihihihii
 
đừng kêu tôi là sư phụ . tôi nghe nhức đầu . tôi cũng chỉ giống như bạn đã từng gặp vấn đề đã từng hỏi . giờ tôi có tí kinh nghiệm thì tôi giúp lại người khác . nguyên A4 là cái gì ? không hiểu .
số đó phải là 72 đó tôi viết nhầm . nó là hệ số chuyển đơn vị từ inches sang points
1 inches = 72 points
trong file bạn đưa lên có 2 sheet mà tôi thấy đã khác xa nhau về cấu trúc thì làm sao tôi dám viết code áp dụng trên mọi sheet
ý mình là điền luôn khổ trang A4 vào code chứ ko ghi ở ngoài sheet chỗ ô J5 ý
 
đừng kêu tôi là sư phụ . tôi nghe nhức đầu . tôi cũng chỉ giống như bạn đã từng gặp vấn đề đã từng hỏi . giờ tôi có tí kinh nghiệm thì tôi giúp lại người khác . nguyên A4 là cái gì ? không hiểu .
số đó phải là 72 đó tôi viết nhầm . nó là hệ số chuyển đơn vị từ inches sang points
1 inches = 72 points
trong file bạn đưa lên có 2 sheet mà tôi thấy đã khác xa nhau về cấu trúc thì làm sao tôi dám viết code áp dụng trên mọi sheet
Đúng rồi 2 sheet khác nhau! mình muốn hỏi để khi mình tách riêng sheet đó ra và tạo thành nhiều sheet cấu trúc giống nhau nên mình muốn hỏi làm thế nào để cho chạy tất cả các sheet
 
nhiều chuyện chút nha đai ca........hihihihi
sao đai ca ko lấy thông số page setup vào luôn mà phải nhập tay
chơi luôn cho "ló máu"..........hihihihii

mình còn trẻ lắm nha bạn . mới đầu 2 thôi . gọi mình là đại ca mình không biết trốn vào đâu nữa =))
mình sợ người này không sửa được code khi cần in trên khổ giấy khác . nếu A4 hết thì khỏe rồi
 
mình còn trẻ lắm nha bạn . mới đầu 2 thôi . gọi mình là đại ca mình không biết trốn vào đâu nữa =))
mình sợ người này không sửa được code khi cần in trên khổ giấy khác . nếu A4 hết thì khỏe rồi
Cảm ơn bạn nhé! mình vọc cũng hiểu qua qua 1 chút code của bạn viết.. giờ muốn cho chạy nhiều sheet thì thay đổi như nào nhỉ
 
Đúng rồi 2 sheet khác nhau! mình muốn hỏi để khi mình tách riêng sheet đó ra và tạo thành nhiều sheet cấu trúc giống nhau nên mình muốn hỏi làm thế nào để cho chạy tất cả các sheet
thế thì bạn phải đưa file nào đó lên và chỉ rõ các sheet có cấu trúc giống nhau đó có quy luật gì về tên gọi
thí dụ các sheet cần chỉnh sẽ có tên có dạng "1.Kxx" chẳng hạn
hoặc là tất cả các sheet cần chỉnh cùng nằm trên 1 file . sheet nào có cấu trúc khác thì tự bạn đem đi qua file khác mà đặt
 
thế thì bạn phải đưa file nào đó lên và chỉ rõ các sheet có cấu trúc giống nhau đó có quy luật gì về tên gọi
thí dụ các sheet cần chỉnh sẽ có tên có dạng "1.Kxx" chẳng hạn
hoặc là tất cả các sheet cần chỉnh cùng nằm trên 1 file . sheet nào có cấu trúc khác thì tự bạn đem đi qua file khác mà đặt

1. Đây bạn ơi! đây là 1 file nhiều sheet giống nhau.
mình muốn 1 kiểu nữa như này:
2. Nếu muốn chạy các sheet theo ý mình theo kiểu mục lục, giống như lúc đầu đặt khổ giấy A4 ở ô J5 đó
 
1. Đây bạn ơi! đây là 1 file nhiều sheet giống nhau.
mình muốn 1 kiểu nữa như này:
2. Nếu muốn chạy các sheet theo ý mình theo kiểu mục lục, giống như lúc đầu đặt khổ giấy A4 ở ô J5 đó

ý 1 thì để từ từ nha vì nếu vùng in lên tới dòng 207 thì code có khi chạy sai đó . để mai tính giờ tôi buồn ngủ rồi -+*/-+*/
ý 2 tôi không hiểu bạn . cần nói rõ hơn
 
mình còn trẻ lắm nha bạn . mới đầu 2 thôi . gọi mình là đại ca mình không biết trốn vào đâu nữa =))
mình sợ người này không sửa được code khi cần in trên khổ giấy khác . nếu A4 hết thì khỏe rồi

tuổi trẻ tài cao, tôi mới double bạn thui, kêu đai ca là được rồi........hehehheh
lúc trước tôi có thấy đoạn code này, bạn thử xem nó có xài được ko
Mã:
hgWid = Application.InchesToPoints(ActiveSheet.PageSetup.PaperSize)
 
Lần chỉnh sửa cuối:
ý 1 thì để từ từ nha vì nếu vùng in lên tới dòng 207 thì code có khi chạy sai đó . để mai tính giờ tôi buồn ngủ rồi -+*/-+*/
ý 2 tôi không hiểu bạn . cần nói rõ hơn
ý 1: là muốn code chạy all sheet trong file cell, còn dòng lên tới 207 nghĩa là mình đã chép code sang file khác và tùy chỉnh vùng lựa chọn thôi
ý 2: là mình muốn code chạy cho 1 số sheet, có tên có dạng "1.Kxx" chẳng hạn có ảnh minh họa
nhầm chút nhé..
Tên các sheet muốn code chạy
 
tuổi trẻ tài cao, tôi mới double bạn thui, kêu đai ca là được rồi........hehehheh
lúc trước tôi có thấy đoạn code này, bạn thử xem nó có xài được ko
Mã:
hgWid = Application.InchesToPoints(ActiveSheet.PageSetup.PaperSize)

cám ơn bạn nhưng rất tiếc ....
cái PageSetup.PaperSize là người ta dùng số để đại diện cho cái khổ giấy đang được chọn (ở đây là số 9 )
giống như kiểu range.end(3) được hiểu là range.end(xlup) (hay down gì đó )
chứ VBA tôi không tìm ra được hàm nào để lấy ra chiều dài và chiều rộng của tờ giấy in

AsP1tGE1nQRlKetHrdFPeP5ptzeSRmogwW4O1P51Xrg=w1167-h665-no
 
bạn ơi! giúp mình bài #31 với!
 
làm vầy thì khỏi cần biết dòng cuối trong bảng là 207 hay bao nhiêu , cứ nhắm mắt đưa chân thôi

Mã:
Sub pagsetup()
Dim headRowHei As Double, pageHei As Double, tRowHei As Double, shNames As Range
Dim ws As Worksheet, r As Long, lrPrint As Long, arr As Variant, lrCT As Long, frCT As Long, signRow As Long
Application.ScreenUpdating = False
Set shNames = Worksheets("Sheet1").Range("B1:B" & Worksheets("Sheet1").Range("B50000").End(xlUp).Row)
For Each ws In Worksheets
    If TypeName(Application.Match(ws.Name, shNames, 0)) <> "Error" Then
        With ws
            ws.Activate
            lrPrint = .[B50000].End(xlUp).Row
            .Range("A1:A" & lrPrint).EntireRow.Hidden = False
            arr = .Range("B1:D" & lrPrint).Value
            For r = UBound(arr) To 1 Step -1
                If WorksheetFunction.Trim(arr(r, 1)) <> "" And Not IsNumeric(arr(r, 1)) Then signRow = r
                If Val(arr(r, 1)) <> 0 Or Val(arr(r, 3)) <> 0 Then
                    lrCT = r
                    Exit For
                End If
            Next
            .PageSetup.PrintArea = "B1:G" & (lrPrint + 200)
            ActiveWindow.View = xlPageBreakPreview
            frCT = .Rows(.PageSetup.PrintTitleRows).Row + .Rows(.PageSetup.PrintTitleRows).Rows.Count
            .Rows(frCT & ":" & lrPrint).RowHeight = 14
            If lrCT < signRow - 1 Then
                .Rows((lrCT + 1) & ":" & (signRow - 1)).Hidden = True
            End If
            For r = 1 To .HPageBreaks.Count Step 1
                If lrCT - 4 < .HPageBreaks(r).Location.Row And lrPrint >= .HPageBreaks(r).Location.Row Then
                    headRowHei = .Rows(.PageSetup.PrintTitleRows).Height
                    pageHei = 11.7 * 72 - .PageSetup.TopMargin - .PageSetup.BottomMargin + r + 2
                    tRowHei = (r * pageHei - r * headRowHei - .Range("A1:A" & _
                    (.Rows(.PageSetup.PrintTitleRows).Row - 1)).Height) / (lrCT - frCT - 4)
                    .Rows(frCT & ":" & lrCT).RowHeight = tRowHei
                    Exit For
                End If
            Next
            .PageSetup.PrintArea = "B1:G" & lrPrint
            ActiveWindow.View = xlNormalView
        End With
    End If
Next
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
làm vầy thì khỏi cần biết dòng cuối trong bảng là 207 hay bao nhiêu , cứ nhắm mắt đưa chân thôi

Mã:
Sub pagsetup()
Dim headRowHei As Double, pageHei As Double, tRowHei As Double, shNames As Range
Dim ws As Worksheet, r As Long, lrPrint As Long, arr As Variant, lrCT As Long, frCT As Long, signRow As Long
Application.ScreenUpdating = False
Set shNames = Worksheets("Sheet1").Range("B1:B" & Worksheets("Sheet1").Range("B50000").End(xlUp).Row)
For Each ws In Worksheets
    If TypeName(Application.Match(ws.Name, shNames, 0)) <> "Error" Then
        With ws
            ws.Activate
            lrPrint = .[B50000].End(xlUp).Row
            .Range("A1:A" & lrPrint).EntireRow.Hidden = False
            arr = .Range("B1:D" & lrPrint).Value
            For r = UBound(arr) To 1 Step -1
                If WorksheetFunction.Trim(arr(r, 1)) <> "" And Not IsNumeric(arr(r, 1)) Then signRow = r
                If Val(arr(r, 1)) <> 0 Or Val(arr(r, 3)) <> 0 Then
                    lrCT = r
                    Exit For
                End If
            Next
            frCT = .Rows(.PageSetup.PrintTitleRows).Row + .Rows(.PageSetup.PrintTitleRows).Rows.Count
            .Rows(frCT & ":" & lrPrint).RowHeight = 14
            If lrCT < signRow - 1 Then
                .Rows((lrCT + 1) & ":" & (signRow - 1)).Hidden = True
            End If
            .PageSetup.PrintArea = "B1:G" & (lrPrint + 200)
            ActiveWindow.View = xlPageBreakPreview
            For r = 1 To .HPageBreaks.Count Step 1
                If lrCT - 4 < .HPageBreaks(r).Location.Row And lrPrint >= .HPageBreaks(r).Location.Row Then
                    headRowHei = .Rows(.PageSetup.PrintTitleRows).Height
                    pageHei = 11.7 * 72 - .PageSetup.TopMargin - .PageSetup.BottomMargin + r + 2
                    tRowHei = (r * pageHei - r * headRowHei - .Range("A1:A" & _
                    (.Rows(.PageSetup.PrintTitleRows).Row - 1)).Height) / (lrCT - frCT - 4)
                    .Rows(frCT & ":" & lrCT ).RowHeight = tRowHei
                    Exit For
                End If
            Next
            .PageSetup.PrintArea = "B1:G" & lrPrint
            ActiveWindow.View = xlNormalView
        End With
    End If
Next
Application.ScreenUpdating = True
End Sub
bị lỗi ở dòng này bạn ơi!
Set shNames = Worksheets("Sheet1").Range("B1:B" & Worksheets("Sheet1").Range("B50000").End(xlUp).Row)
 
Phiền bạn 1 chút nữa: ở code trước muốn chạy all sheet trong file phải sửa như nào nhỉ:
giúp mình nốt cái này đi

Sub hidedongpro()
Dim lr As Long, lp As Integer, headRowHei As Double, pageHei As Double, rowCount As Integer, tRowHei As Double
Dim ws As Worksheet
Set ws = ActiveSheet
Application.ScreenUpdating = True
With ws
.Range([b13], [b198]).EntireRow.Hidden = False
lr = Application.Match(1000, .Range("b13:b198"))
.Rows("13:300").RowHeight = 14
If TypeName(lr) = "Error" Then Exit Sub
If Val(.Range("D" & (lr + 13))) <> 0 Then lr = lr + 1
If lr < 198 Then .Range("b" & (lr + 13), "b198").EntireRow.Hidden = True
.PageSetup.PrintArea = "B1:G300"
ActiveWindow.View = xlPageBreakPreview
If lr + 8 < .HPageBreaks(2).Location.Row And .HPageBreaks(2).Location.Row <= 207 Then lp = 2
If lr + 8 < .HPageBreaks(1).Location.Row And .HPageBreaks(1).Location.Row <= 207 Then lp = 1
If lp > 0 Then
headRowHei = .Range("A11:A12").Height
pageHei = 11.7 * 72 - .PageSetup.TopMargin - .PageSetup.BottomMargin
rowCount = lr - 5
tRowHei = (lp * pageHei - lp * headRowHei - .Range("A1:A10").Height) / rowCount
.Range("A13:A198").SpecialCells(xlCellTypeVisible).EntireRow.RowHeight = tRowHei
End If
.PageSetup.PrintArea = "B1:G207"
End With
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
ý 1: là muốn code chạy all sheet trong file cell, còn dòng lên tới 207 nghĩa là mình đã chép code sang file khác và tùy chỉnh vùng lựa chọn thôi
ý 2: là mình muốn code chạy cho 1 số sheet, có tên có dạng "1.Kxx" chẳng hạn có ảnh minh họa
nhầm chút nhé..
Tên các sheet muốn code chạy
à! bạn ơi để các tên khác thì chạy ngon, mình cho tên 11, 22 vào list thì nó ko chạy, đổi tên nó lại chạy ngay nghĩa là sao nhỉ
 
Phiền bạn 1 chút nữa: ở code trước muốn chạy all sheet trong file phải sửa như nào nhỉ:
sửa ở chỗ chữ mầu đỏ này phải ko nhỉ bạn, giúp mình nốt cái này đi
sửa lại cho giống bài #34 100% thì mới chạy được . lưu ý bài #34 mới được chỉnh sửa lại cho phù hợp (sửa lúc 4h30)

à! bạn ơi để các tên khác thì chạy ngon, mình cho tên 11, 22 vào list thì nó ko chạy, đổi tên nó lại chạy ngay nghĩa là sao nhỉ

sheet nào đó có tên là 11 thì trong Sheet1 phải ghi lại tên của nó là '11
 
Lần chỉnh sửa cuối:
sửa lại cho giống bài #34 100% thì mới chạy được . lưu ý bài #34 mới được chỉnh sửa lại cho phù hợp (sửa lúc 4h30)
sheet nào đó có tên là 11 thì trong Sheet1 phải ghi lại tên của nó là '11

lỗi điền tên sheet được rùi bạn à (cho ' vào trước 11 để nó thành text)
còn bài #34 code cũ của nó chạy ngon rùi mà, mình vừa update code mới lúc 16h30 thì lỗi ko chạy được
 
Lần chỉnh sửa cuối:
Phiền bạn 1 chút nữa: ở code trước muốn chạy all sheet trong file phải sửa như nào nhỉ:
giúp mình nốt cái này đi

Sub hidedongpro()
Dim lr As Long, lp As Integer, headRowHei As Double, pageHei As Double, rowCount As Integer, tRowHei As Double
Dim ws As Worksheet
Set ws = ActiveSheet
Application.ScreenUpdating = True
With ws
.Range([b13], [b198]).EntireRow.Hidden = False
lr = Application.Match(1000, .Range("b13:b198"))
.Rows("13:300").RowHeight = 14
If TypeName(lr) = "Error" Then Exit Sub
If Val(.Range("D"
 
Lần chỉnh sửa cuối:
lỗi điền tên sheet được rùi bạn à (cho ' vào trước 11 để nó thành text)
còn bài #34 code cũ của nó chạy ngon rùi mà, mình vừa update code mới lúc 16h30 thì lỗi ko chạy được

không chạy được thì đem file đó lên đây . tôi không phải tôn ngộ không mà đi chữa bệnh từ xa
code bạn trích dẫn chỉ chạy được khi bảng in kết thúc tại dòng 116 . tôi không có hứng thú đi sửa cách cũ khi đã có cách khác tốt hơn
 
không chạy được thì đem file đó lên đây . tôi không phải tôn ngộ không mà đi chữa bệnh từ xa
code bạn trích dẫn chỉ chạy được khi bảng in kết thúc tại dòng 116 . tôi không có hứng thú đi sửa cách cũ khi đã có cách khác tốt hơn
hay đấy! mình thik công nghệ cao
Module1 nhé
 
Lần chỉnh sửa cuối:
tôi bê nguyên bài #34 bỏ vào đây và không thấy có vấn đề gì ?
 

File đính kèm

cho mình xem vô tí nha
Sub chonvunginAZ()
ActiveSheet.PageSetup.PrintArea = ("A1:z" & [A65536].End(xlUp).Row) 'vung in
End Sub

cái này cũng chọn dc vùng in nè chọn từ cột a đến z điểm cuối cùng của vùng in là dòng cuối cùng chứa dữ liệu của cột a

còn ẩn dòng dữ liệu trống #8 trong WKT
http://webketoan.com/threads/52817-an-hien-dong-trong-bang-vba-trong-excel/
bác xem hình này. fage 1 nó bị chua làm 2 trang. bác có thể làm cho nó tự sướng là tự chỉnh luôn không? kiểu như mình dùng chuột kéo sang phải để cho vừa trang luôn ấy. làm vậy thì văn bản và chữ sẽ bị nhỏ lại
 

File đính kèm

  • chart.jpg
    chart.jpg
    103.9 KB · Đọc: 27
không biết bạn còn trẻ hay đã già mà người khác nói câu trước câu sau là bạn quên luôn
vậy tôi nhắc lại lần nữa
ùa! xin lỗi..
Mình có 1 file khác muốn chỉnh cho code chạy theo file đó chiều cột khác 1 chút bạn chỉ cho mình thay đổi như thông số nào trong code với, bạn bôi mầu ở vị trí thay đổi nhé
--------------------------
Sub fixdongsheetlist()
Dim headRowHei As Double, pageHei As Double, tRowHei As Double, shNames As Range
Dim ws As Worksheet, r As Long, lrPrint As Long, arr As Variant, lrCT As Long, frCT As Long, signRow As Long
Application.ScreenUpdating = False
Set shNames = Worksheets("Danh Sach Fix").Range("B1:B"
 
Lần chỉnh sửa cuối:
ùa! xin lỗi..
Mình có 1 file khác muốn chỉnh cho code chạy theo file đó chiều cột khác 1 chút bạn chỉ cho mình thay đổi như thông số nào trong code với, bạn bôi mầu ở vị trí thay đổi nhé
--------------------------
Sub fixdongsheetlist()
Dim headRowHei As Double, pageHei As Double, tRowHei As Double, shNames As Range
Dim ws As Worksheet, r As Long, lrPrint As Long, arr As Variant, lrCT As Long, frCT As Long, signRow As Long
Application.ScreenUpdating = False
Set shNames = Worksheets("Danh Sach Fix").Range("B1:B" & Worksheets("Danh Sach Fix").Range("B50000").End(xlUp).Row)
For Each ws In Worksheets
If TypeName(Application.Match(ws.Name, shNames, 0)) <> "Error" Then
With ws
ws.Activate
lrPrint = .[B50000].End(xlUp).Row
.Range("A1:A" & lrPrint).EntireRow.Hidden = False
arr = .Range("B1:D" & lrPrint).Value
For r = UBound(arr) To 1 Step -1
If WorksheetFunction.Trim(arr(r, 1)) <> "" And Not IsNumeric(arr(r, 1)) Then signRow = r
If Val(arr(r, 1)) <> 0 Or Val(arr(r, 3)) <> 0 Then
lrCT = r
Exit For
End If
Next
.PageSetup.PrintArea = "B1:G" & (lrPrint + 200)
ActiveWindow.View = xlPageBreakPreview
frCT = .Rows(.PageSetup.PrintTitleRows).Row + .Rows(.PageSetup.PrintTitleRows).Rows.Count
.Rows(frCT & ":" & lrPrint).RowHeight = 14
If lrCT < signRow - 1 Then
.Rows((lrCT + 1) & ":" & (signRow - 1)).Hidden = True
End If
For r = 1 To .HPageBreaks.Count Step 1
If lrCT - 4 < .HPageBreaks(r).Location.Row And lrPrint >= .HPageBreaks(r).Location.Row Then
headRowHei = .Rows(.PageSetup.PrintTitleRows).Height
pageHei = 11.7 * 72 - .PageSetup.TopMargin - .PageSetup.BottomMargin + r + 2
tRowHei = (r * pageHei - r * headRowHei - .Range("A1:A" & _
(.Rows(.PageSetup.PrintTitleRows).Row - 1)).Height) / (lrCT - frCT - 4)
.Rows(frCT & ":" & lrCT).RowHeight = tRowHei
Exit For
End If
Next
.PageSetup.PrintArea = "B1:G" & lrPrint
ActiveWindow.View = xlNormalView
End With
End If
Next
Application.ScreenUpdating = True
End Sub
tham khảo cách của mình nha b
dán code này vào
sheet 3- chỉ áp dụng cho sheet 3- muốn sheet khác thì dán nó vào- chỉ cần nhấn đến sheet 3 thì nó tự fix ko cần nhấn fix nữa
'__________________________________________________
Public Check As Boolean
Option Explicit
Private Sub Worksheet_Activate()
Call hidedongpro
ActiveSheet.PageSetup.PrintArea = ("B1:J" & [b65536].End(xlUp).Row)'<= chọn vùng in từ B1 đến dòng cuối cùng có dữ liệu ở cột B, theo file của b thì nó lấy tới chữ ký ấy, số cột là từ B tới J
End Sub
 
Lần chỉnh sửa cuối:
tham khảo cách của mình nha b
dán code này vào
sheet 3- chỉ áp dụng cho sheet 3- muốn sheet khác thì dán nó vào- chỉ cần nhấn đến sheet 3 thì nó tự fix ko cần nhấn fixx nữa
Public Check As Boolean
Option Explicit
Private Sub Worksheet_Activate()
Call hidedongpro
ActiveSheet.PageSetup.PrintArea = ("B1:J"
 
Lần chỉnh sửa cuối:
tham khảo cách của mình nha b
dán code này vào
sheet 3- chỉ áp dụng cho sheet 3- muốn sheet khác thì dán nó vào- chỉ cần nhấn đến sheet 3 thì nó tự fix ko cần nhấn fixx nữa
Public Check As Boolean
Option Explicit
Private Sub Worksheet_Activate()
Call hidedongpro
ActiveSheet.PageSetup.PrintArea = ("B1:J" & [b65536].End(xlUp).Row)'<= chọn vùng in từ B1 đến dòng cuối cùng có dữ liệu ở cột B, theo file của b thì nó lấy tới chữ ký ấy, số cột là từ B tới J
End Sub

cám ơn bạn . cách của bạn rất hay và ngắn gọn thế mà mình không nghĩ ra . mong bạn bớt chút thời gian giúp chủ topic tháo gỡ tí vướng mắc còn lại nhé . mình xin tạm biệt ở đây vậy
 
Cảm ơn bạn Doveandrose nhiều lắm!
 
Lần chỉnh sửa cuối:
Bạn langtuchungtinh360! giúp mình bài #49 được không, mình thay các thông số vào toàn bị lỗi không chạy được
 
Lần chỉnh sửa cuối:
cám ơn bạn . cách của bạn rất hay và ngắn gọn thế mà mình không nghĩ ra . mong bạn bớt chút thời gian giúp chủ topic tháo gỡ tí vướng mắc còn lại nhé . mình xin tạm biệt ở đây vậy
BÁC CHƯA ĐI ĐC ĐÂU. BÁC PHẢI QUA ĐÂY GIÚP EM NỮA CHỨ
http://www.giaiphapexcel.com/forum/...ro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng/page3
TRANG NÀY NGOÀI LỀ NHA. EM NHỜ BÁC DOVEANDROSE
 
BÁC CHƯA ĐI ĐC ĐÂU. BÁC PHẢI QUA ĐÂY GIÚP EM NỮA CHỨ
http://www.giaiphapexcel.com/forum/...ro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng/page3
TRANG NÀY NGOÀI LỀ NHA. EM NHỜ BÁC DOVEANDROSE
Mình làm phiền nhiều quá, cậu ấy bỏ đi rùi.. hixx bài #49 ko ai giải quyết hộ rùi, code sài sang file mới nhiều cột hơn thì chẳng biết chỉnh ở đâu, vào chỉnh thì bị lỗi linh tinh.. hixxx
 
Lần chỉnh sửa cuối:
BÁC CHƯA ĐI ĐC ĐÂU. BÁC PHẢI QUA ĐÂY GIÚP EM NỮA CHỨ
http://www.giaiphapexcel.com/forum/...ro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng/page3
TRANG NÀY NGOÀI LỀ NHA. EM NHỜ BÁC DOVEANDROSE

trình độ của tôi còn thấp kém . vấn đề của bạn quá sức đối với tôi => không làm nỗi . bạn cần liên lạc với người trong #31 của topic mà bạn trích dẫn đó . người đó rất chuyên nghiệp sẽ giúp bạn giải quyết nhanh thôi .
 
Mình làm phiền nhiều quá, cậu ấy bỏ đi rùi.. hixx bài #49 ko ai giải quyết hộ rùi, code sài sang file mới nhiều cột hơn thì chẳng biết chỉnh ở đâu, vào chỉnh thì bị lỗi linh tinh.. hixxx
#49 t có trả lời rồi đó b. ko giải quyết đc gì à.
b tham khảo thêm code ẩn dữ liệu này nữa nhé
__________________________
Option Explicit
Sub HiddRows()'<=ẩn
Range([a1].End(xlDown).Offset(1), [b2].End(xlDown).Offset(, -1)).Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub


Sub UnhiddenRows()'<=bỏ ẩn
Sheet1.UsedRange.EntireRow.Hidden = False
End Sub
__________________________________
t xin giải thích thêm trong tầm hỉu biết của t thôi nha
ở code thứ nhất, chữ a1 đó có nghĩa là
ví dụ cho dễ hiểu he
bạn nhập từ ô A1 đến A5 xong từ A7 đến A10 nhập cái gì cũng đc
ở ô B1 đến B10 bạn nhập xàm xàm hết luôn
xong chạy code đi là hiểu. tức là nó sẽ xét xem ở cột A có ô nào trống không rồi nó ẩn đi.
nhấn f8 chạy từ từ nha, rồi tùy chính hai chữ a1 b2 đó theo file của bạn.
cái chữ b2 thì mình nghĩ là nó so sánh với cột B.
code mình tìm đc bên wedketoan
với mình hok biết gì về VBA cả nên giải thích có sai bạn thông cảm
 
trình độ của tôi còn thấp kém . vấn đề của bạn quá sức đối với tôi => không làm nỗi . bạn cần liên lạc với người trong #31 của topic mà bạn trích dẫn đó . người đó rất chuyên nghiệp sẽ giúp bạn giải quyết nhanh thôi .

hình như topic đó tôi trả lời, sao lại kéo tôi dzô đây bạn?
ở topic đó tôi bỏ của chạy lấy người rồi mà............hehehehe
===========
@ lãng tử chung tình
nói về macro 4 thì chắc là sư phụ NDU là số dzách
về ADO thì có lẻ bác HaiLuaMenTay
còn các bậc thẩy "mai danh ẩn tích" thì tui hỏng có biết
tôi cũng có mon men học ADO, nhưng hình nhưng ai rành Acess hay SQL thì dể tiếp cận hơn, dzọc một thời gian tôi đành bỏ cuộc
macro4 thì có vẻ hơi cổ, thấy ít người chơi
bạn mới tập tành code, tôi nghĩ đừng dzọc cao quá vậy, cứ mở file lấy số liệu rồi đóng lại là chắc ăn.
còn muốn nhờ mọi người làm giúp, rồi cứ vậy mà xài,thì bạn nên mở một topic, nêu rỏ ràng yêu cầu, file đầy đủ thì chắc mấy vị đó sẻ nhảy vào giúp bạn thôi
thân
 
hình như topic đó tôi trả lời, sao lại kéo tôi dzô đây bạn?
ở topic đó tôi bỏ của chạy lấy người rồi mà............hehehehe
===========
@ lãng tử chung tình
nói về macro 4 thì chắc là sư phụ NDU là số dzách
về ADO thì có lẻ bác HaiLuaMenTay
còn các bậc thẩy "mai danh ẩn tích" thì tui hỏng có biết
tôi cũng có mon men học ADO, nhưng hình nhưng ai rành Acess hay SQL thì dể tiếp cận hơn, dzọc một thời gian tôi đành bỏ cuộc
macro4 thì có vẻ hơi cổ, thấy ít người chơi
bạn mới tập tành code, tôi nghĩ đừng dzọc cao quá vậy, cứ mở file lấy số liệu rồi đóng lại là chắc ăn.
còn muốn nhờ mọi người làm giúp, rồi cứ vậy mà xài,thì bạn nên mở một topic, nêu rỏ ràng yêu cầu, file đầy đủ thì chắc mấy vị đó sẻ nhảy vào giúp bạn thôi
thân
dẫu biết là thế. cũng là nội dung đó nhưng gửi hết diễn đàn rồi. vô chỗ nào chả thấy câu hỏi đó của em. nhưng ít người trả lời cho em quá. chỉ có bác là vô trả lời quyết liệt nhất thôi. và cũng có gửi mail cho Ndu rồi mà chả thấy trả lời. có vẻ là bay vô thư rác rồi cũng nên.
rất tiếc là Cần Thơ ko chỗ nào dạy. trên youtube thì chỉ cà lớt cà lớt đi nhanh quá (không có ý xúc phạm, do mình không hiểu cách làm thôi). cái đc cái ko @@
 
#50 mình trả lời cho #49 đó bạn xem lại đi.
bài #50 đã giúp mình rất nhiều về vấn đề mình cần và cũng đã được giải quyết ở code tự động.. nhưng bạn xem hộ mình lại đi, ý mình muốn nhờ giải thick code của bác doveandrose. đã viết rồi nhưng ý mình muốn code của bạn doveandrose. dùng cho 1 sheet khác cột khác và dòng khác thì phải sửa như nào,mình cũng tự vọc để sửa nhưng bị lồi nên nhờ bạn giúp, mình là dân xây dựng phải sử dụng nhiều nên muốn biết để sửa code của vùng cần khai báo để thực hiện codecho no chạy, phiền bạn doveandrose nhieu quá nên cung ngại.. code bạn doveandrose viết cho sheet 1.K95 gio minh muon code đó thực hiện cho sheet 111 thì phải đổi như nào, mình cũng nhiều việc nên ko tìm hiểu được sâu chỉ biết dùng mong được chỉ để thực hiện cho đối tượng sheet khác
 
Lần chỉnh sửa cuối:
bài #50 đã giúp mình rất nhiều về vấn đề mình cần và cũng đã được giải quyết ở code tự động.. nhưng bạn xem hộ mình lại đi, ý mình muốn nhờ giải thick code của bác doveandrose. đã viết rồi nhưng ý mình muốn code của bạn doveandrose. dùng cho 1 sheet khác cột khác và dòng khác thì phải sửa như nào,mình cũng tự vọc để sửa nhưng bị lồi nên nhờ bạn giúp, mình là dân xây dựng phải sử dụng nhiều nên muốn biết để sửa code của vùng cần khai báo để thực hiện codecho no chạy, phiền bạn doveandrose nhieu quá nên cung ngại.. code bạn doveandrose viết cho sheet 1.K95 gio minh muon code đó thực hiện cho sheet 111 thì phải đổi như nào, mình cũng nhiều việc nên ko tìm hiểu được sâu chỉ biết dùng mong được chỉ để thực hiện cho đối tượng sheet khác
bạn xem lại hộ mình đi. #50 mình có nói rồi mà. bạn copy cái code mình thêm đó. dán qua sheet khác. xong chỉnh lại cột cần lấy. code của mình là B1:J rồi gì gì đó, mình xin nói lại. là nó lấy từ cột B đến J để in. sang sheet khác bác muốn nó lấy từ Z đến ZA gì đó thì sửa lại chỗ B1: J thành Z1:ZA mình cũng là dân xây dựng nên cũng chả biết gì nhiều về mấy cái code này cả, nói đúng hơn là không biết gì luôn.
file bác làm rất đẹp, bố cục còn ngon hơn file mình làm.
nếu bác muốn sửa code của doveandrose thì bác xem cái module 2 nha. cái Sub hidedongpro() đó
chỗ này .PageSetup.PrintArea = "B1:G207" dòng thứ 5 ở cuối đếm lên
tức là chọn vùng in từ B1 đến G207
bạn có thể xóa bỏ dòng này đi vì nếu áp dụng code của mình cho đó thì nó bị dư ra
mình xin giải thích lại cái cách tự động đó lại nha
phần đầu thì mình không biết làm sao. chỉ biết là nó làm cho code nó tự chạy luôn
chỗ call hidedongpro đó là gọi cái sub hidedongpro() ra làm là để ẩn đi dòng trống.
còn cái chỗ mình chú thích chọn vùng in đó chắc bạn biết chức năng r nhỉ. cứ F8+F8 chạy từ từ là biết. chứ mình cũng chả biết gì đâu. chỉ là nhấn F8 chạy từ từ rồi biết code nó làm gì làm gì rồi mới sửa lại, chứ viết code sorry bác em hok biết.

bác thàm khảo thêm lại #59 nha. mình thấy nó tổng quát hơn cách của doveandrose đó. cách của doveandrose chỉ áp dụng cho 300 dòng à. nếu hơn thì mình nghĩ nó sẽ chạy sai.
 
Lần chỉnh sửa cuối:
Mình xin chân thành cảm ơn mọi người! tất cả mọi thắc mắc theo yêu cầu của topic này đã được giải quyết!
 
Lần chỉnh sửa cuối:
Mình xin chân thành cảm ơn mọi người! tất cả mọi thắc mắc theo yêu cầu của topic này đã được giải quyết!
cái code trên mình đưa cho b đó. áp dụng vô file của bạn chạy sai nha. cứ áp dụng code của deveandrose rồi thêm cái code tự chạy mình đưa cho đó là đc rồi.
 
cái code trên mình đưa cho b đó. áp dụng vô file của bạn chạy sai nha. cứ áp dụng code của deveandrose rồi thêm cái code tự chạy mình đưa cho đó là đc rồi.
Mình giải quyết được hết rồi.. code của bạn deveandrose ngon lắm rồi.. hi hi! quả này làm nhàn quá.. cái thời gian auto to tay mất cả buổi sáng cho 1 file, giờ đây 1s là có thể uống nước chè hút thuốc cả buổi sáng rồi.. SƯỚNG! ha ha thanks all mọi người đã giúp đỡ rất nhiều
 
Lần chỉnh sửa cuối:
Langtuchungtinh360! mình đã tạo ra 1 bộ list hàm cell kết hợp với VBA giờ ngon lắm rồi, bạn làm xd có sài không mình share, nếu dùng để lại cái Gmail đấy hi hi (à cả auto xuất nhật kí nữa ^^!)
 
Lần chỉnh sửa cuối:
Langtuchungtinh360! mình đã tạo ra 1 bộ list hàm cell kết hợp với VBA giờ ngon lắm rồi, bạn làm xd có sài không mình share, nếu dùng để lại cái Gmail đấy hi hi (à cả auto xuất nhật kí nữa ^^!)
OK bác. em vừa tìm ra cách giúp bác ngắn gọn luôn nè.
dán code này vô
_____________________
Sub ANDONGSO0()'sua ten sheet lại cho sheet của bác nha.
For I = Sheet1.Range("a65500").End(xlUp).Row To 1 Step -1 'giai thich: dò ở cột A tại sheet1
If Range("a" & I).Value = 0 Then' nếu có giá trị 0 thì
Range("a" & I).EntireRow.Hidden = True 'ẩn hàng có giá trị 0 đi.
End If' file của bác thì giá trị tại mấy cái phía dưới là 0 nên dò số 0
Next'cũng ac thật! không xem hàm ở cột A làm tưởng nó là rỗng làm code chạy sai hoài.
End Sub ' kết thúc lệnh
________________
xong dùng cái code chọn vùng in mình sent đấy để mà chọn vùng
file đây https://www.fshare.vn/file/B6ONXH9KUCSO
hình như nó chạy 1 lần rồi mấy lần sau nó bị chậm ấy. có lẽ là nó không giải phóng đc bộ nhớ. bác hỏi mọi người trên diễn đàn xem sao nó chạy chậm ở mấy lần sau thế.
Mail:vantanle020192@gmail.com
SĐT:0939795092 có gì zalo bàn tiếp
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
code lỗi bạn gửi cái file add code rồi mình xem nào
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom