Manhhungstone
Thành viên mới
- Tham gia
- 13/4/10
- Bài viết
- 31
- Được thích
- 4
Dùng Button ngon hơn!Nhờ mọi người hướng dẫn có cách nào ẩn hiện sheet có điều kiện. mình kèm theo File nhờ mọi người hướng dẫn giùm/ xin cảm ơn nhiều
Sub LinkToSh()
With Sheets(ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text)
.Visible = True: .Select
End With
End Sub
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> "TrangChu" Then Sh.Visible = False
Next
End Sub
Nếu vậy thì dùng code này càng đơn giản hơn:Ý bạn cũng giống ý mình. mình muốn khi làm việc với sheet nay thì các sheet kia "biến", sẽ gọn hơn. nhưng mình thấy nó không ẩn à mình nhấn cứ nhấn sheel nào thì nó hiện lên hết/ bạn kiểm tra lại giùm mình với nhé. cảm ơn bạn nhiều.
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
With Sheets(Target.Name)
.Visible = True: .Select
End With
Sh.Visible = False
End Sub
Cái này tôi nhớ đã làm cho bạn ít nhất 3 lần rồi --> Sao chẳng chịu nghiên cứu nhỉ?Mình đã làm theo bạn cách ẩn hiện sheet có điều kiện nhưng có một vấn đề là khi mình muốn lấp nút bấm bằng macro Button thì nó báo lỗi không ẩn sheet và không vào được sheet muốn đến. nhờ bạn có cách nào sửa lại đoạn code hộ nhé/ cảm ơn nhiều.
Sub Link2Sh()
On Error GoTo ExitSub
With Sheets(ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text)
.Visible = True: .Select
End With
Sheets("Trang chu").Visible = False
ExitSub:
End Sub
---Dùng Button ngon hơn!
Code trong Module
Code cho sheet TrangChuPHP:Sub LinkToSh() With Sheets(ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text) .Visible = True: .Select End With End Sub
PHP:Private Sub Worksheet_Activate() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> "TrangChu" Then Sh.Visible = False Next End Sub
------
Bài này nếu Remove Hyperlink đi thì code viết gọn lại như bài #8 ( chỉ dùng 1 code trong module ) đươc viết như thế nào hả chú. Cụ thể là chỉ còn Sheet "Trang chủ" và sheet được chọn. Cám ơn
Anh ơi, anh nói vậy em khó hình dung quá---
Nhờ chú xem giúp anh bài này nhé. Cám ơn
Dùng Button ngon hơn!
Code trong Module
Code cho sheet TrangChuPHP:Sub LinkToSh() With Sheets(ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text) .Visible = True: .Select End With End Sub
PHP:Private Sub Worksheet_Activate() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> "TrangChu" Then Sh.Visible = False Next End Sub
Chắc ý bạn muốn gõ tên trên nhản Button khác với tên sheet thực tế mà vẫn Link đến được... Thiếu chi cách, chẳng hạn đánh dấu bằng AlternativeTextCái này thì hay đấy, nhưng mà còn bị bất tiện một chút là. Dùng Button thì tẽt trên đó là tên của sheet. Nhưng tên của sheet thi lại viết tắt, nên đôi khi nhìn không đẹp lắm và khó đọc. Nhưng cũng cảm ơn bạn.
Cảm ơn
Mình cũng có sẵn một Sheet và tự động chạy đến Sheet "Main" khi khởi động. Trên Sheet Main này mình đã dùng toàn bộ là CommandButton và click vào là dẫn tới các sheet khác. Giờ nếu dùng Button như của Bác thì ngồi chỉnh lại hơi mệt. Bác có thể từ đó mà chỉ cho mình cách giải được không.Chắc ý bạn muốn gõ tên trên nhản Button khác với tên sheet thực tế mà vẫn Link đến được... Thiếu chi cách, chẳng hạn đánh dấu bằng AlternativeText
Bạn thích thế nào cứ cho ý kiến, tôi sẽ làm thử
Xem qua bài này nhé: Hướng dẫn cách tạo menu nút bấm thêm đến nhiều sheet
Chấp nhận "ăn chơi" phải chịu "tốn kém" thôi ---> Mệt nhưng học được trò mới cũng xứng đángMình cũng có sẵn một Sheet và tự động chạy đến Sheet "Main" khi khởi động. Trên Sheet Main này mình đã dùng toàn bộ là CommandButton và click vào là dẫn tới các sheet khác. Giờ nếu dùng Button như của Bác thì ngồi chỉnh lại hơi mệt. Bác có thể từ đó mà chỉ cho mình cách giải được không.
Chấp nhận "ăn chơi" phải chịu "tốn kém" thôi ---> Mệt nhưng học được trò mới cũng xứng đáng
Giờ bạn hãy đưa file của bạn lên đây xem thử được không?
Trong này tôi viết sẳn cho bạn 3 code:Đây, nhờ bạn xem giúp nhé. Trên Sheet Main của mình có nhiều commandbutton lắm.
Cảm ơn.
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Sheets("Main").Visible = True
Sh.Visible = False
End Sub
Sub Auto_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.Visible = Sh.Name = "Main"
Next Sh
End Sub
Sub GotoSh()
On Error GoTo ExitSub
With Sheets(ActiveSheet.Shapes(Application.Caller).AlternativeText)
.Visible = True
.Select
End With
Sheets("Main").Visible = False
ExitSub:
End Sub
Sao mình thử lên file của mình thì mọi thứ đều được, nhưng khi bấm "trở về" của sheet khác (dùng Huyperlink) thì nó không hiểu. Vì lúc này sheet Main đã bị ẩn.Trong này tôi viết sẳn cho bạn 3 code:
PHP:Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Sheets("Main").Visible = True Sh.Visible = False End Sub
PHP:Sub Auto_Open() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.Visible = Sh.Name = "Main" Next Sh End Sub
Khi bạn có nhu cầu thêm Button để link đến 1 sheet mới, hãy làm như sau:PHP:Sub GotoSh() On Error GoTo ExitSub With Sheets(ActiveSheet.Shapes(Application.Caller).AlternativeText) .Visible = True .Select End With Sheets("Main").Visible = False ExitSub: End Sub
- Vẽ Button
- Click phải vào Button, chọn Assign Macro, chọn code có tên GotoSh rồi bấm OK
- Click phải vào Button, chọn Format Control, chuyển sang tab Web rồi gõ tên sheet cần link vào khung Alternative text
(Bạn thấy đấy, tôi nhoáng cái đã xong, có khó khăn gì đâu)