ẩn cột theo điều kiện

Liên hệ QC

huongtinh1929

Premier Сasual Dating Real-life Girls
Tham gia
6/10/11
Bài viết
61
Được thích
4
Giới tính
Nam
Nghề nghiệp
Health
Các bác chỉ giáo giúp em tại sao em chạy VBA để ẩn từ cột có dữ liệu đến cột cuối cùng lại báo lỗi.
Sub ancot()
cotcuoi = Sheet3.Cells(3, Sheet3.Columns.Count).End(xlToLeft).Column + 1
Sheet3.Columns(cotcuoi & ":m").EntireColumn.Hidden = True
End Sub
Em cảm ơn các bác
 
Các bác chỉ giáo giúp em tại sao em chạy VBA để ẩn từ cột có dữ liệu đến cột cuối cùng lại báo lỗi.
Sub ancot()
cotcuoi = Sheet3.Cells(3, Sheet3.Columns.Count).End(xlToLeft).Column + 1
Sheet3.Columns(cotcuoi & ":m").EntireColumn.Hidden = True
End Sub
Em cảm ơn các bác
Lỗi chỗ màu đỏ:
.Columns("2:m").EntireColumn.Hidden = True
 
Upvote 0
Lỗi chỗ màu đỏ:
.Columns("2:m").EntireColumn.Hidden = True
sao em chay vẫn báo lỗi bác ạ. Ý em là tìm cột cuối cùng có chứa dữ liệu. Xong từ cột tiếp theo đến cột cuối cùng của bảng tính ta ẩn đi bác ạ. Mong bác chỉ giúp ạ. Em cảm ơn bác !
 
Upvote 0
range(columns(cột cuối cùng có dữ liệu + 1),columns(columns.Count)).hidden = true
 
Upvote 0
em cam ơn bác VetMini rất đúng bác ạ. em chỉnh sửa lại thêm một chút để không phải ẩn hết các cột còn lại. Chỉ cần ẩn từ cột cuối cùng có dữ liệu tới cột cuối cùng trong bảng tính (VD: cột thứ 45, cột AS) và khắc phục lỗi chạy sub khi sheet hiện hành (sheet2) không hoạt động.
Sub ancot()
sheet2.activate
Cot = Sheet2.Cells(6, Sheet2.Columns.Count).End(xlToLeft).Column + 1
Sheet2.Range(Columns(Cot), Columns(45)).Hidden = True
End Sub
một lần nữa em xin chân thành cảm ơn bác VetMini
 
Lần chỉnh sửa cuối:
Upvote 0
em cam ơn bác VetMini rất đúng bác ạ. em chỉnh sửa lại thêm một chút để không phải ẩn hết các cột còn lại. Chỉ cần ẩn từ cột cuối cùng có dữ liệu tới cột cuối cùng trong bảng tính (VD: cột thứ 45, cột AS) và khắc phục lỗi chạy sub khi sheet hiện hành (sheet2) không hoạt động.
Sub ancot()
sheet2.activate
Cot = Sheet2.Cells(6, Sheet2.Columns.Count).End(xlToLeft).Column + 1
Sheet2.Range(Columns(Cot), Columns(45)).Hidden = True
End Sub
một lần nữa em xin chân thành cảm ơn bác VetMini
Code bài 5 đã dùng SheetCode rồi thì bạn di chuyển sheet đó bất kỳ chỗ nào nó cũng hiểu và nên xóa bỏ dòng này (đâu cần Activate):

sheet2.activate

Theo tôi, nếu có nhiều sheet với tiêu đề dòng 3 giống nhau thì dùng code sau muốn ẩn cột K:AS của bất kỳ sheet nào khi chạy code.

Mã:
Sub Ancot_TeLe()
    Range("K3:AS3").Columns.Hidden = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Ở trên tôi chỉ mách cho cách làm. Như thớt muốn cái xúp của mình chạy bất chợt chỗ nào thì phải cốt súp cho nó rõ rệt

Sub ancot()
Dim sh As WorkSheet
set sh = AciveSheet
Sheet2.Activate
AnCotTheoSheet 6
sh.Activate
' cách khác:
' AnCotTheoSheet 6, Sheet2
End Sub

Private Sub AnCotTheoSheet(Optional ByVal dong As Long = 1, Optional sh As WorkSheet = Null)
With IIF( IsNull(sh), ActiveSheet, sh)
.Range(.Columns(.Cells(dong, .Columns.Count).End(xlToLeft).Column + 1),.Columns(.Columns.Count)).Hidden = True
End With
End Sub
 
Upvote 0
em xin chân thành cảm ơn các ý kiến đóng góp và chỉ bảo của các bác Vetmini, Be09, Huuthang_bd. Chúc các bác luôn luôn mạnh khỏe và thành đạt....
 
Upvote 0
Web KT
Back
Top Bottom