Làm thế nào để ẩn đc nhiều sheet cùng 1 lúc bằng câu lệnh VBA trong Excel????

Liên hệ QC

thanlong882

Thành viên mới
Tham gia
7/9/10
Bài viết
23
Được thích
2
Xin chào các pro mọi người giải quyết giúp mình vấn đề này nhé?
-Theo mình đc biết thì excel chỉ cho phép ẩn hoặc hiện 1 sheet trong 1 lần thực hiện lệnh Hide hoặc UnHide mà thôi, nhưng giờ mình muốn lựa chọn nhiều sheet cùng 1 lúc rồi thực hiện lệnh Hide() hoặc UnHide() thì phải làm thế nào ??????
Mong các pro giúp đỡ nhé vì mình đã làm thử viết lệnh trong VBA mà không đc.
Mình đã tạo 1 hộp thoại trong VBA trong gồm 1 listbox(chọn chức năng multiselect) để hiển thị tên các sheet trong Workbook
Khi chạy chương trình khi ta chọn các sheet cần ẩn nhấn nút lệnh thì các sheet đc chọ sẽ ẩn ngay
Nhưng hiện tại mình chưa thực hiện đc, mong đc sự chỉ giao của các pro
Hình ảnh form mình tạo ra

hide--unhide.JPG
Mình xin cảm ơn !}}}}}}}}}}}}}}}}}}}}}}}}}
Ai giải quyết đc thì làm ơn chỉ giáo giúp mình nhé, các bạn có thể gửi mail cho mình qua địa chỉ : thanhbv88@gmail.com
 
Lần chỉnh sửa cuối:
Xin chào các pro mọi người giải quyết giúp mình vấn đề này nhé?
-Theo mình đc biết thì excel chỉ cho phép ẩn hoặc hiện 1 sheet trong 1 lần thực hiện lệnh Hide hoặc UnHide mà thôi, nhưng giờ mình muốn lựa chọn nhiều sheet cùng 1 lúc rồi thực hiện lệnh Hide() hoặc UnHide() thì phải làm thế nào ??????
Mong các pro giúp đỡ nhé vì mình đã làm thử viết lệnh trong VBA mà không đc.
Mình đã tạo 1 hộp thoại trong VBA trong gồm 1 listbox(chọn chức năng multiselect) để hiển thị tên các sheet trong Workbook
Khi chạy chương trình khi ta chọn các sheet cần ẩn nhấn nút lệnh thì các sheet đc chọ sẽ ẩn ngay
Nhưng hiện tại mình chưa thực hiện đc, mong đc sự chỉ giao của các pro
Hình ảnh form mình tạo ra

View attachment 55034
Mình xin cảm ơn !}}}}}}}}}}}}}}}}}}}}}}}}}
Ai giải quyết đc thì làm ơn chỉ giáo giúp mình nhé, các bạn có thể gửi mail cho mình qua địa chỉ : thanhbv88@gmail.com
Tạm làm cho bạn thế này:
PHP:
Private Sub UserForm_Initialize()
  Me.ListBox1.List() = GetSh
End Sub
PHP:
Private Sub CommandButton1_Click()
  Hide_UnHideSh False
End Sub
PHP:
Private Sub CommandButton2_Click()
  Hide_UnHideSh True
End Sub
PHP:
Private Sub CommandButton3_Click()
  Unload Me
End Sub
PHP:
Private Sub Hide_UnHideSh(Check As Boolean)
  Dim i As Long
  On Error Resume Next
  With Me.ListBox1
    For i = 1 To .ListCount
      If .Selected(i - 1) Then Sheets(.List(i - 1)).Visible = Check
    Next
  End With
End Sub
PHP:
Private Function GetSh()
  Dim Temp()
  ThisWorkbook.Names.Add String(240, "z"), "=SUBSTITUTE(GET.WORKBOOK(1),""[""&GET.WORKBOOK(16)&""]"","""")"
  Temp = Evaluate("Transpose(" & String(240, "z") & ")")
  Temp = WorksheetFunction.Transpose(Temp)
  ThisWorkbook.Names(String(240, "z")).Delete
  GetSh = Temp
End Function
Mở file đính kèm và thí nghiệm thử xem
 

File đính kèm

  • Hide&UnHideSheets.xls
    53 KB · Đọc: 571
Xin cảm ơn anh ndu96081632 rất nhiều.
Anh cho em hỏi là làm trong Macro4 với đề bài này thì làm thế nào ạ ?
Và còn 1 vấn đề nữa em muốn hỏi đó là:
+ Mình thiết kế 1 template bao gồm N sheet, sau đó viết 1 chương trình bằng Macro4 gọi đến cái template đó ta đc 1 workbook mới với các sheet đc thiết kế như trong template
+ Vậy cũng với họp thoại Hide & Unhide sheet trên có thể làm ẩn đc các sheet tại workbook hiện hành hay không ạ ?

Mong anh chỉ giáo giúp ạ ?
Em xin cảm ơn!
 
Lần chỉnh sửa cuối:
Xin cảm ơn anh ndu96081632 rất nhiều.
Anh cho em hỏi là làm trong Macro4 với đề bài này thì làm thế nào ạ ?
Và còn 1 vấn đề nữa em muốn hỏi đó là:
+ Mình thiết kế 1 template bao gồm N sheet, sau đó viết 1 chương trình bằng Macro4 gọi đến cái template đó ta đc 1 workbook mới với các sheet đc thiết kế như trong template
Em xin cảm ơn!
Về ứng dụng của macro 4, tôi thật sự không rành lắm! Chỉ áp dụng có tí xíu ở trong Function GetSh thôi ---> Hoành tráng hơn e rằng không thể giúp bạn được rồi
Mà sao bạn không dùng VBA? Bắt buộc phải macro 4 sao?
Còn về câu hỏi
+ Vậy cũng với họp thoại Hide & Unhide sheet trên có thể làm ẩn đc các sheet tại workbook hiện hành hay không ạ ?
Xin trả lời là hoàn toàn có thể! Bạn làm như sau:
- Trong file của tôi, bạn chèn thêm 1 module với code:
PHP:
Sub ShowForm()
  UserForm1.Show
End Sub
- Trong toàn bộ code của tôi, chổ nào có chữ ThisWorkbook hãy sửa lại thành ActiveWorkbook
- Giờ thì khi đứng tại 1 workbook hiện hành bất kỳ, hãy bấm Alt + F8, gọi Sub ShowForm là có thể dùng được code trên để ẩn sheet tại workbook hiện hành
 
Lần chỉnh sửa cuối:
Dạ vâng em cảm ơn anh nhiều!
Em muốn làm thêm về Macro4 để so sánh thôi ạ, vì em thấy làm trong Macro4 nó rắc rối và cũng không hiểu nhiều về nó, nên mốn biết để học hỏi thêm thôi ạ
1 lần nữa cảm ơnn anh rất nhiều /-*+//-*+//-*+//-*+//-*+//-*+/
 
Web KT
Back
Top Bottom