vivian57
Thành viên mới
- Tham gia
- 19/12/20
- Bài viết
- 5
- Được thích
- 1
Cách đơn giản nhất, không cần VBA, là ẩn sheet tabs. Sau đó, dùng gán Hyperlink để di chuyển giữa các tab.Xin chào Anh/chị
Hiện em có 1 file dữ liệu excel, bao gồm 1 Menu và 12 sheet chỉ số của 12 tháng.
Anh /chị cho em xin code VBA để mở sheet khi cần và tự động đóng lại khi trở về Menu với ạ.
Cách đơn giản nhất, không cần VBA, là ẩn sheet tabs. Sau đó, dùng gán Hyperlink để di chuyển giữa các tab.
Với Class Module thì quá sức với phần lớn thành viên GPE bạn ơi! Tôi chưa bao giờ thử viết class module bao giờ vì nhu cầu, yêu cầu đâu tới đó. Chờ câu trả lời của chủ thớt xem thế nào?Bài này chủ thớt chỉ đích dùng VBA và đăng thẳng vào box lập trình rồi không thay đổi ý định đâu.Nhưng làm theo link trên thì cũng không khó để thực hiện
Với Class Module thì quá sức với phần lớn thành viên GPE bạn ơi! Tôi chưa bao giờ thử viết class module bao giờ vì nhu cầu, yêu cầu đâu tới đó. Chờ câu trả lời của chủ thớt xem thế nào?
Tôi lười không muốn đọc cái code kia nhưng tôi đoán là cái class module ấy dùng để tạo cách đi từ các sheet phụ trở về sheet chính và ẩn sheet phụ vừa rời khỏi. Tôi đoán thế là vì class module là cách hữu hiệu nhất để một đoạn code hoặc một hiệu ứng có thể dùng bởi nhiều sheets, nhiều controls.Với Class Module thì quá sức với phần lớn thành viên GPE bạn ơi! Tôi chưa bao giờ thử viết class module bao giờ vì nhu cầu, yêu cầu đâu tới đó. Chờ câu trả lời của chủ thớt xem thế nào?
Public curr_sheet_name As String
Sub showSheet()
curr_sheet_name = ThisWorkbook.Worksheets("MENU").Shapes(Application.Caller).TextFrame2.TextRange.Text
With ThisWorkbook.Worksheets(curr_sheet_name)
.Visible = xlSheetVisible
.Activate
End With
End Sub
Private Sub Worksheet_Activate()
If Len(curr_sheet_name) Then
ThisWorkbook.Worksheets(curr_sheet_name).Visible = xlSheetVeryHidden
curr_sheet_name = ""
End If
End Sub
em cám ơn ạ, vì ban đầu mới tập về VBA em chưa rành, nhưng làm theo như vầy thì ok rồi ạNếu tôi hiểu ý thì làm như sau.
1. Trong VBE click từng sheet CHỈ SỐ T01, ..., CHỈ SỐ T12 -> thiết lập Visible = xlSheetVeryHidden
2. Trong VBE: menu Insert -> Module -> code cho Module1
Mã:Public curr_sheet_name As String Sub showSheet() curr_sheet_name = ThisWorkbook.Worksheets("MENU").Shapes(Application.Caller).TextFrame2.TextRange.Text With ThisWorkbook.Worksheets(curr_sheet_name) .Visible = xlSheetVisible .Activate End With End Sub
3. Trong VBE đúp chuột vào Sheet1 (MENU) và dán code
Mã:Private Sub Worksheet_Activate() If Len(curr_sheet_name) Then ThisWorkbook.Worksheets(curr_sheet_name).Visible = xlSheetVeryHidden curr_sheet_name = "" End If End Sub
4. Trên sheet MENU phải chuột trên từng shape với text CHỈ SỐ T01, ..., CHỈ SỐ T12 -> chọn Assign macro -> chọn showSheet
Lưu lại thành XIN CODE.xlsm