Làm sao để unhide nhiều sheet một lần?

Liên hệ QC

echo07

Nguyệt Hà
Tham gia
24/8/07
Bài viết
422
Được thích
316
Các pác cho em hỏi, khi ta muốn ẩn nhiều sheet một lúc thì dẽ rồi nhưng khi muốn bung ra thì phải làm từng sheet. Như vậy rất mất công mà còn bị ức chế. Vậy có cách nào cho phép bung nhiều sheet một lúc k??
 
echo07 đã viết:
Các pác cho em hỏi, khi ta muốn ẩn nhiều sheet một lúc thì dẽ rồi nhưng khi muốn bung ra thì phải làm từng sheet. Như vậy rất mất công mà còn bị ức chế. Vậy có cách nào cho phép bung nhiều sheet một lúc k??
Thì dùng VBA thôi. Nhưng thực chất VBA cũng Unhide từng Sheet mà thôi nhưng nó tự động nên nhanh thôi.

TDN
 
Bạn dùng thử code này xem.
Mã:
Sub UnHideSheet()
   For Each sh In ThisWorkbook.Worksheets
       sh.Visible = True
   Next sh
End Sub
 
Cảm ơn bác nhưng nhà em chưa sử dụng code bao giờ. bác chỉ em được không???
 
ThuNghi đã viết:
Nếu có cài ASAP thì có công cụ show all sheets.
Bác ThuNghi ơi bạn ý chưa dùng code bao giờ Bác cho ASAP thì khó quá ah.
Cảm ơn bác nhưng nhà em chưa sử dụng code bao giờ. bác chỉ em được không???
Trong file excel Bạn nhấp Alt+F11 trong cửa sổ VBE bạn vào menu insert/module trong cửa sổ module bạn dán đoạn code đó vào. Nếu muốn chạy ngay trong VBE bạn nhấn vào nút mũi tên mầu xanh hoặc vào menu Run rồi nhấn run/sub ... Hay nhấn F5.
Còn ở trong bảng tính bạn nhấn Alt + F8 chọn tên macro rồi chọn run.
Chúc Bạn thành công.
 
Bạn mở 1 file Excel, bấm Alt + F11 đễ mở cửa sổ VBE... vào menu Insert\Module đễ add 1 module rồi copy code của Salam, paste vào cửa sổ này... Đóng cửa sổ VBE lại...
Trên bảng tính bấm Atl + F8, chọn tên Marco và OK là nó chạy liền...
ANH TUẤN
 
Dear All

Sao mình dùng code này lại báo lỗi sh.Visible = Fasle tại Sheet 3

Mã:
Sub HideSheet()
   For Each sh In ThisWorkbook.Worksheets
       sh.Visible = Fasle
   Next sh
End Sub

Thân
 
Thanks cả nhà. Bạn Thien xem lại chứ em cop về chạy ngon. đây là lần đầu em tập dùng code đấy. Hay phết. Thanks again.
 
Thien đã viết:
Dear All

Sao mình dùng code này lại báo lỗi sh.Visible = Fasle tại Sheet 3

Mã:
Sub HideSheet()
   For Each sh In ThisWorkbook.Worksheets
       sh.Visible = Fasle
   Next sh
End Sub
Thân
Báo lỗi là do nó không thể ẩn hết sheet được.
Bạn muốn ẩn sheet thì bạn thêm dòng này vào nhé
Mã:
Sub HideSheet()
[COLOR=Red]On Error Resume Next[/COLOR]
   For Each sh In ThisWorkbook.Worksheets
       sh.Visible = Fasle
   Next sh
End Sub
 
Thien đã viết:
Dear All

Sao mình dùng code này lại báo lỗi sh.Visible = Fasle tại Sheet 3

Thân
Đương nhiên phải báo lỗi rồi.. vì chẳng lẽ.. ẩn tất tần tật... he.. he..
Phải vầy mới dc nè:
PHP:
Sub HideSheet()
   On Error Resume Next
   For Each sh In ThisWorkbook.Worksheets
       sh.Visible = Fasle
   Next sh
End Sub
ANH TUẤN
 
Vấn đề này cũng là vấn đề các bạn thường đặt ra.

Để thực hiện chúng ta có thể mô tả quá trình Hide như sau:
_ Hiện các worksheet bạn cần.
_ Dấu các worksheet còn lại.

Mã:
Function IsItInArray(sValueToFind As Variant, InputArray As Variant) As Boolean
    IsItInArray = Not IsError(Application.Match(sValueToFind, InputArray, 0))
End Function

Để thực hiện được điều này tôi có dùng hàm IsItInArray.
Hàm này sẽ kiểm tra một chuổi có trong một mảng hay không.
Ví dụ:
Mã:
Sub Test()
    Dim x As Variant
    x = Array("Hello", "Duyet", "Hien", "Luyen", "Long", "Quan")
    If IsItInArray("Long", x) Then
        MsgBox "Tồn tại"
    Else
        MsgBox "Không tồn tại"
    End If
End Sub
Và sau đó tôi dùng thủ tục sau:

Mã:
Sub ViewWs(ByVal WsName As Variant)
    Dim Ws As Worksheet
    On Error Resume Next
    Application.ScreenUpdating = False
    'There is at least one worksheet visible first
    'If not, the error will be shown and this Sub is not correct
    For Each Ws In ThisWorkbook.Worksheets
        If IsItInArray(Ws.Name, WsName) Then
            Ws.Visible = xlSheetVisible
        End If
    Next
    For Each Ws In ThisWorkbook.Worksheets
        If Not IsItInArray(Ws.Name, WsName) Then
            Ws.Visible = xlSheetHidden
        End If
    Next
    Application.ScreenUpdating = True
End Sub
Hy vọng đoạn ví dụ trên có thể giúp cho các bạn.

Lê Văn Duyệt
 
Đã hơn 6 năm trôi qua cho câu hỏi này, không biết Microsoft Excel đã có cách nào cho unhide all sheet chưa? Nếu không dùng code VBA thì có cách nào không vậy mọi người? Nếu có xin được giúp đỡ.
 
Đã hơn 6 năm trôi qua cho câu hỏi này, không biết Microsoft Excel đã có cách nào cho unhide all sheet chưa? Nếu không dùng code VBA thì có cách nào không vậy mọi người? Nếu có xin được giúp đỡ.
Đây là 1 thao tác ít dùng nhưng rất hữu dụng. Mình cũng có cùng nhu cầu như bạn.
 
Đã hơn 6 năm trôi qua cho câu hỏi này, không biết Microsoft Excel đã có cách nào cho unhide all sheet chưa? Nếu không dùng code VBA thì có cách nào không vậy mọi người? Nếu có xin được giúp đỡ.
Không dùng code chắc không được đâu bạn ơi.
 
Đây là 1 thao tác ít dùng nhưng rất hữu dụng. Mình cũng có cùng nhu cầu như bạn.
Cái này dùng custom views trong menu view ( excel 2003 ) có lẽ là giải quyết được, bạn gửi 1 file giả định lên xem sao
---
Gửi bạn file ví dụ xem có đúng ý không
Nhấn alt+v+v---> chọn ToanBo ---> enter
 

File đính kèm

  • Unhide all sheet.xls
    16.5 KB · Đọc: 291
Lần chỉnh sửa cuối:
Cái này dùng custom views trong menu view ( excel 2003 ) có lẽ là giải quyết được, bạn gửi 1 file giả định lên xem sao
---
Gửi bạn file ví dụ xem có đúng ý không
Nhấn alt+v+v---> chọn ToanBo ---> enter
Cha cái này hay nhỉ mới biết nè, lại học được chiêu mới.
 
Lần chỉnh sửa cuối:
Cái này dùng custom views trong menu view ( excel 2003 ) có lẽ là giải quyết được, bạn gửi 1 file giả định lên xem sao
---
Gửi bạn file ví dụ xem có đúng ý không
Nhấn alt+v+v---> chọn ToanBo ---> enter
Bạn làm thế nào vậy bạn.
Xin bạn hướng dẫn thêm vì mình chưa hiểu bạn ạ.
 
Bạn làm thế nào vậy bạn.
Xin bạn hướng dẫn thêm vì mình chưa hiểu bạn ạ.
Ví dụ 1 trường hợp đơn giản, có gì bạn mở rộng thêm
Giả sử ban đầu file có 3 sheet là 1, 2, 3.
Sẽ tạo 2 view là :
1- Chỉ nhìn thấy sheet1
2- Nhìn thấy toàn bộ các sheet

B1: Khi toàn bộ các sheet đều nhìn thấy
Nhấn alt+v+v ---> nhấn add ---> Nhập tên "ToanBo" trong Name ---> ok
B2 : Ẩn sheet 2, 3 bằng lệnh hide
Nhấn alt+v+v ---> nhấn add ---> Nhập tên "An" trong Name ---> ok

Bây giờ nếu muốn hiện toàn bộ sheet, bạn làm : alt +v+v --->
chọn "ToanBo" ---> show (hoặc enter) sẽ thấy toàn bộ các sheet
chọn "An" ---> show (hoặc enter) sẽ chỉ thấy sheet1

Có thể tạo nhiều view bằng cách trên
 
Lần chỉnh sửa cuối:
Ví dụ 1 trường hợp đơn giản, có gì bạn mở rộng thêm
Giả sử ban đầu file có 3 sheet là 1, 2, 3.
Sẽ tạo 2 view là :
1- Chỉ nhìn thấy sheet1
2- Nhìn thấy toàn bộ các sheet

B1: Khi toàn bộ các sheet đều nhìn thấy
Nhấn alt+v+v ---> nhấn add ---> Nhập tên "ToanBo" trong Name ---> ok
B2 : Ẩn sheet 2, 3 bằng lệnh hide
Nhấn alt+v+v ---> nhấn add ---> Nhập tên "An" trong Name ---> ok

Bây giờ nếu muốn hiện toàn bộ sheet, bạn làm : alt +v+v --->
chọn "ToanBo" ---> show (hoặc enter) sẽ thấy toàn bộ các sheet
chọn "An" ---> show (hoặc enter) sẽ chỉ thấy sheet1

Có thể tạo nhiều view bằng cách trên
Quá hay.
Cảm ơn bạn rất nhiều.
Phím tắt excel 2003 mình hay phải dùng nhiều.
Giờ mình ms biết chức năng này của excel. Mà có từ bản 2003 luôn.
Bạn cho mình hỏi thêm chút.
Khi mình Add thì có mục Indude in View.
Mình chưa hiểu ý nghĩa của mục này. Có thử tích và bỏ tích thì ko thấy khác biệt.
Bạn có thể giải thích giúp mình mục đấy có ý nghĩa gì không?
Mình có đọc nhiều tài liệu excel nhưng ko thấy có phần này.
Cảm ơn bạn!
 
Web KT
Back
Top Bottom