jukohoivisao

New Member
e có 1 file excel 12 sheet gồm 3 sheet chính (TENKH, CDKT, MENU) được mặc định để hiện và luôn hiện
9 sheet làm việc em đã để ẩn (theo code ẩn-hiện toàn bộ sheet trên GPE)
bây giờ em muốn tạo 3 nút ấn trên sheet MENU để khi ấn vào sẽ hiện các sheet cùng chủ đề (tiền, htk, nợ ...)
nút A -> hiện A11, A12, A13
nút B -> hiện B11, B12, B13
nút C -> hiện C11, C12, C13
bác nào biết chỉ giúp em, em Thank !!!
p/s: đây là file cty nên e không được đổi tên tùy ý
 

tctuvan

New Member
Cái này phải dùng Macro, bạn áp dụng code này:
Thay thế các Sheet thành Sheet của bạn
VD: Array("A11", "A12", "A13")

Code:
Sub Group1_Click()
Dim ws As Worksheet
MySheets = Array("Main", "Sheet1", "Sheet2", "Sheet3", "Sheet4")
    Call Hide_Show(MySheets)
End Sub

Sub Group2_Click()
MySheets = Array("Main", "Sheet5", "Sheet6", "Sheet7", "Sheet8")
    Call Hide_Show(MySheets)
End Sub

Sub Group3_Click()
MySheets = Array("Main", "Sheet9", "Sheet10", "Sheet11", "Sheet12")
    Call Hide_Show(MySheets)
End Sub

Sub Group4_Click()
MySheets = Array("Main", "Sheet13", "Sheet14", "Sheet15", "Sheet16")
    Call Hide_Show(MySheets)
End Sub

Function Hide_Show(MySheets)
Application.ScreenUpdating = False
For Each ws In Sheets
    X = Application.Match(ws.Name, MySheets, 0)
    If Not IsError(X) Then
    ws.Visible = True
    Else
    ws.Visible = False
    End If
 

jukohoivisao

New Member
Sub Group1_Click()
Dim ws As Worksheet
MySheets = Array("D110", "D120")
Call Hide_Show(MySheets)
End Sub

Sub Group2_Click()
MySheets = Array("D210", "D220")
Call Hide_Show(MySheets)
End Sub

Sub Group3_Click()
MySheets = Array("G110", "G120")
Call Hide_Show(MySheets)
End Sub

Function Hide_Show(MySheets)
Application.ScreenUpdating = False
For Each ws In Sheets
X = Application.Match(ws.Name, MySheets, 0)
If Not IsError(X) Then
ws.Visible = True
Else
ws.Visible = False
End If


e chạy code nó báo lỗi: Function Hide_Show(MySheets)
Call Hide_Show
bác xem hộ e với !!!
 

tctuvan

New Member
bạn thử lại code này
Code:
Sub Group1_Click()
Dim WS As Worksheet
MySheets = Array("D110", "D120")
Call Hide_Show(MySheets)
End Sub

Sub Group2_Click()
MySheets = Array("D210", "D220")
Call Hide_Show(MySheets)
End Sub

Sub Group3_Click()
MySheets = Array("G110", "G120")
Call Hide_Show(MySheets)
End Sub

Sub Hide_Show(MySheets)
  Dim WS As Worksheet
  Application.ScreenUpdating = False
  For Each WS In Worksheets(MySheets)
    X = Application.Match(WS.Name, MySheets, 0)
    If WS.Visible = False Then
    WS.Visible = True
    Else
    WS.Visible = False
    End If
  Next
  Worksheets(MySheets(UBound(MySheets))).Activate
  Application.ScreenUpdating = True
End Sub
 

Các chủ đề có liên quan khác

Top