Hỏi code Ẩn hiện sheet

Liên hệ QC

letuongqt

Thành viên hoạt động
Tham gia
26/3/08
Bài viết
141
Được thích
24
Đoạn code ẩn hiện sheet lấy từ diễn đàn , khi áp dụng không biết sai chổ nào mà khi dùng liên kết đến sheet vẫn không hiện được sheet . Nhờ các anh hướng dẫn giúp . Rất cảm ơn .
(Trước đây tôi đã áp dụng chạy được nhưng bây giờ thì không ).
 

File đính kèm

anh chị nào giúp em với được không ak.
Chuện là thế này. Trong file excel e có 10 sheets. Em muốn là e đang ở sheet hiện tại thì em ấn nút "ẩn" thì ẩn toàn bộ sheet đằng sau sheet hiện tại ạ( ví dụ sheet hiện tại là sheet5 thì ấn nút ẩn là ẩn toàn bộ sheet6~sheet10 ak). và thêm nữa là muốn một nút ấn hiện, mỗi lần ấn hiện là hiện sheet kế tiếp. (vi dụ ấn hiện là sheet6 hiện).
Anh chị hãy chia sẻ giúp em vấn dề này vs
Em chân thành cám ơn
gmail của em: nguyenhuyhiep1210@gmail.com
 
Upvote 0
anh chị nào giúp em với được không ak.
Chuện là thế này. Trong file excel e có 10 sheets. Em muốn là e đang ở sheet hiện tại thì em ấn nút "ẩn" thì ẩn toàn bộ sheet đằng sau sheet hiện tại ạ( ví dụ sheet hiện tại là sheet5 thì ấn nút ẩn là ẩn toàn bộ sheet6~sheet10 ak). và thêm nữa là muốn một nút ấn hiện, mỗi lần ấn hiện là hiện sheet kế tiếp. (vi dụ ấn hiện là sheet6 hiện).
Anh chị hãy chia sẻ giúp em vấn dề này vs
Em chân thành cám ơn
gmail của em: nguyenhuyhiep1210@gmail.com
Tại sao giúp bạn phải gửi mail cho bạn mà không gửi lên chổ này. Không lẻ bạn gửi tiền thù lao à.
 
Lần chỉnh sửa cuối:
Upvote 0
Không phải nhé. Gửi lên cho tất cả mọi người ak.
Dùng 2 đoạn code dưới đây.
Mã:
Public Sub Hide()
On Error Resume Next
Dim i As Integer
  For i = Sheets.Count To 1 Step -1
    If Sheets(i).Name = ActiveSheet.Name Then
        Exit For
    Else
        Sheets(i).Visible = False
    End If
  Next i
End Sub
Public Sub Show()
On Error Resume Next
Dim i As Integer
  For i = 1 To Sheets.Count
    If Sheets(i).Name = ActiveSheet.Name Then Exit For
  Next i
If i < Sheets.Count Then Sheets(i + 1).Visible = True
End Sub
 
Upvote 0
Dùng 2 đoạn code dưới đây.
Mã:
Public Sub Hide()
On Error Resume Next
Dim i As Integer
  For i = Sheets.Count To 1 Step -1
    If Sheets(i).Name = ActiveSheet.Name Then
        Exit For
    Else
        Sheets(i).Visible = False
    End If
  Next i
End Sub
Public Sub Show()
On Error Resume Next
Dim i As Integer
  For i = 1 To Sheets.Count
    If Sheets(i).Name = ActiveSheet.Name Then Exit For
  Next i
If i < Sheets.Count Then Sheets(i + 1).Visible = True
End Sub
Em Nghĩ nếu dùng Index của sheets thì có vẻ hay hơn.
Mã:
ActiveSheet.Index
 
Upvote 0
Code ở bài #24 chưa đáp ứng yêu cầu "hiện".
Quote: mỗi lần ấn hiện là hiện sheet kế tiếp

Chú: Sheets collection bao gồm cả Chart sheets. WorkSheets collection mới thuần worksheet.
 
Upvote 0
CHo em hỏi thêm ak. sau khi lưu vào modul rồi thoát ra lại mất ạ. không lưu lại được mã code ak.
 
Upvote 0
Cả nhà giúp em thuật toán này được không ak. Em bh ms bắt đầu làm quen vs vba mong cả nhà giúp đỡ. Em nhờ mọi ng giúp ak.
Ở sheet1 đầu tiên cứ 7 dòng là gộp một ô.
- Dòng 10- dòng 17 có tên detail1-> Nằm ở cột A dòng 10-17,
- Dòng 18 - dòng 24 là detail2, -> Nằm ở cột A dòng 18-24.
- Dòng 25 - dòng 32 là detail3, Nằm ở cột A dòng 25-32.
Ở vị trí ô (D1:10) có điều kiện là nhập "detail1" thì sẽ ẩn detail2 và detail3 ( tương ứng là từ dòng 18 đến dòng 32) bị ẩn.
Ý tưởng:
1. Ô nhập điều kiện D1:10;
2. Ẩn dòng sau khi nhập điều kiện ở D1:10
3. Hiện toàn bộ dòng đã ẩn.
Mong cả nhà chỉ bảo giúp em. viết giúp em với ak.
 
Upvote 0
Web KT

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

Back
Top Bottom