Ẩn hiện các sheet tên theo quy tắc! (1 người xem)

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

pth_gpex

Thành viên chính thức
Tham gia
17/3/08
Bài viết
51
Được thích
1
Mình có 1 workbook với 1 sheet tên Form, 1 sheet tên TH, các sheet còn lại là 2010001 ... đến 2010n (n có 3 chữ số).
Mình muốn tạo 1 nút click hoặc shape cũng được ở sheet TH. Khi click vào nó sẽ ẩn các sheet số trừ 2 sheet Form và TH vẫn còn, khi click lần nữa thì các sheet sẽ hiện trở lại.
Các bạn có thể giúp mình đoạn code nhỏ này với!
 
Mình có 1 workbook với 1 sheet tên Form, 1 sheet tên TH, các sheet còn lại là 2010001 ... đến 2010n (n có 3 chữ số).
Mình muốn tạo 1 nút click hoặc shape cũng được ở sheet TH. Khi click vào nó sẽ ẩn các sheet số trừ 2 sheet Form và TH vẫn còn, khi click lần nữa thì các sheet sẽ hiện trở lại.
Các bạn có thể giúp mình đoạn code nhỏ này với!

Vẽ 1 cái CommandButton rồi copy code này vào
PHP:
Private Sub CommandButton1_Click()
Dim sh As Worksheet
With CommandButton1
   For Each sh In Worksheets
      If sh.Name Like "201" & "*" Then
         sh.Visible = .Caption = "UnHide"
      End If
   Next
   .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
End With
End Sub
 
Upvote 0
Vẽ 1 cái CommandButton rồi copy code này vào
PHP:
Private Sub CommandButton1_Click()
Dim sh As Worksheet
With CommandButton1
   For Each sh In Worksheets
      If sh.Name Like "201" & "*" Then
         sh.Visible = .Caption = "UnHide"
      End If
   Next
   .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
End With
End Sub

Mình nghĩ dùng hàm Isnumeric cũng được, vì tác giả nói:
Mình muốn tạo 1 nút click hoặc shape cũng được ở sheet TH. Khi click vào nó sẽ ẩn các sheet số trừ 2 sheet Form và TH vẫn còn
 
Upvote 0
Cảm ơn 2 thầy quanghai và ndu, mà thầy ndu có thể chỉ rõ hơn về hàm Isnumeric và code ạ!
 
Upvote 0
Cảm ơn 2 thầy quanghai và ndu, mà thầy ndu có thể chỉ rõ hơn về hàm Isnumeric và code ạ!

Code của Quang Hải dùng LIKE
Mã:
Private Sub CommandButton1_Click()
Dim sh As Worksheet
With CommandButton1
   For Each sh In Worksheets
      [COLOR=#ff0000][B]If sh.Name Like "201" & "*" Then[/B][/COLOR]
         sh.Visible = .Caption = "UnHide"
      End If
   Next
   .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
End With
End Sub
Sửa thành Isnumeric là được rồi
Mã:
Private Sub CommandButton1_Click()
Dim sh As Worksheet
With CommandButton1
   For Each sh In Worksheets
      [COLOR=#ff0000][B]If Isnumeric(sh.Name) Then[/B][/COLOR]
         sh.Visible = .Caption = "UnHide"
      End If
   Next
   .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
End With
End Sub
Có nghĩa: sh.Name (tên sheet) thuộc dạng SỐ thì... mần
 
Upvote 0
Chao cac bac. Em moi tim hieu ve VBa. khong hieu nhieu lam. Em co van de ve danh so thu tu nhu file mong cac bac giup
 

File đính kèm

Upvote 0
Chao cac bac. Em moi tim hieu ve VBa. khong hieu nhieu lam. Em co van de ve danh so thu tu nhu file mong cac bac giup

Tuy không hiểu nhiều về VBA, nhưng ít nhất bạn cũng hiểu tiếng Việt đủ để biết rằng:
1. Bài của bạn chả liên quan gì đến chủ đề bài này. Bạn đưa ngang vào như vầy có phải là sổ sàng?
2. Lúc đăng ký thành viên, bạn có hứa là tuân thủ điều lệ. Vậy thì điều lệ viết bài dùng tiếng Việt có dấu để đâu?
 
Upvote 0
Code của Quang Hải dùng LIKE
Mã:
Private Sub CommandButton1_Click()
Dim sh As Worksheet
With CommandButton1
   For Each sh In Worksheets
      [COLOR=#ff0000][B]If sh.Name Like "201" & "*" Then[/B][/COLOR]
         sh.Visible = .Caption = "UnHide"
      End If
   Next
   .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
End With
End Sub
Sửa thành Isnumeric là được rồi
Mã:
Private Sub CommandButton1_Click()
Dim sh As Worksheet
With CommandButton1
   For Each sh In Worksheets
      [COLOR=#ff0000][B]If Isnumeric(sh.Name) Then[/B][/COLOR]
         sh.Visible = .Caption = "UnHide"
      End If
   Next
   .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
End With
End Sub
Có nghĩa: sh.Name (tên sheet) thuộc dạng SỐ thì... mần
Các anh cho tôi hỏi
Trong 1 File có nhiều Sheet như: T01, T02, TongHop, MaVatTu, PST01, ..., PST12, PST00, PT, PC, PNK, PXK, Xuly, LinhTinh ...
Bây giờ tôi muốn ẩn hoặc hiện các sheet như: các sheet có các chữ sau cùng là chữ số (Các sheet tô chữ màu xanh) và các sheet có chử đầu tiên là chữ "P" ( Các sheet tô chữ màu đỏ) và các sheet Xuly, LinhTinh ( Các sheet tô chữ màu nâu)
Cho tôi hỏi code trên cần fải thay đổi như thế nào. Xin cảm ơn!
 
Upvote 0
Các anh cho tôi hỏi
Trong 1 File có nhiều Sheet như: T01, T02, TongHop, MaVatTu, PST01, ..., PST12, PST00, PT, PC, PNK, PXK, Xuly, LinhTinh ...
Bây giờ tôi muốn ẩn hoặc hiện các sheet như: các sheet có các chữ sau cùng là chữ số (Các sheet tô chữ màu xanh) và các sheet có chử đầu tiên là chữ "P" ( Các sheet tô chữ màu đỏ) và các sheet Xuly, LinhTinh ( Các sheet tô chữ màu nâu)
Cho tôi hỏi code trên cần fải thay đổi như thế nào. Xin cảm ơn!

Cần phải thay đổi nhiều lắm.
Nhưng trước khi tiếp tục, bạn cần phải rõ rệt hơn về yêu cầu của mình:
1. Các sheets có số đi sau và các sheets Xuly, LinhTinh là cùng một nhóm hay khác nhóm. Tức là cùng ẩn/hiện với nhau hay mỗi nhóm ẩn/hiện riêng biệt nhau.
2. Các số đi sau thống nhất có 2 chữ số hay có thể bất cứ chữ số?
 
Upvote 0
Cần phải thay đổi nhiều lắm.
Nhưng trước khi tiếp tục, bạn cần phải rõ rệt hơn về yêu cầu của mình:
1. Các sheets có số đi sau và các sheets Xuly, LinhTinh là cùng một nhóm hay khác nhóm. Tức là cùng ẩn/hiện với nhau hay mỗi nhóm ẩn/hiện riêng biệt nhau.
2. Các số đi sau thống nhất có 2 chữ số hay có thể bất cứ chữ số?
1. Khi ẩn hoặc hiện thì làm tất cả các sheet của các màu nói trên
2. Thống nhất các số đi sau có 02 chữ số
Cảm ơn bạn!
 
Upvote 0
1. Khi ẩn hoặc hiện thì làm tất cả các sheet của các màu nói trên
2. Thống nhất các số đi sau có 02 chữ số
Cảm ơn bạn!

Thay dòng này:
If IsNumeric(sh.Name) Then

Với:
If IsNumeric(Right(sh.Name,2)) Or Ucase(Left(sh.Name,1)) = "P" Or InStr( "|XULY|LINHTINH|", "|" & UCase(sh.Name) & "|" ) > 0 Then

Lưu ý là các code trên không có dự phòng trường hợp tất cả các sheets bị ẩn thì nó sẽ cờ rát.
 
Upvote 0

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

Back
Top Bottom