Vấn đề về set sheet mặc định khi mở excel (1 người xem)

Liên hệ QC

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

khidotdn

Thành viên mới
Tham gia
20/4/09
Bài viết
9
Được thích
1
Mình có 1 file sheet tất cả đều ẩn, chỉ có 1 sheets home được set mặc định, trên sheet Home có các button đại diện cho các sheets bị ẩn. Nếu người nào mở 1 sheets nào đó, khi đóng lại thì mở lên sẽ bị báo lỗi:
Run-time error '1004':
Method 'Select' of object'_Worksheet' failed.

( Khi mở sheets khác lên thì sheet Home bị ẩn)
Hiện tại mình đang dùng code sau:
Private Sub Workbook_Open()
Home.Select
End Sub

và module thì chạy :
Sub Food()
With ActiveSheet
With Sheets(.Shapes(Application.Caller).AlternativeText)
.Visible = True: .Select
End With
.Visible = 2
End With
End Sub

Nhờ các anh chị cao thủ chỉ dạy ạ
 
Mình có 1 file sheet tất cả đều ẩn, chỉ có 1 sheets home được set mặc định, trên sheet Home có các button đại diện cho các sheets bị ẩn. Nếu người nào mở 1 sheets nào đó, khi đóng lại thì mở lên sẽ bị báo lỗi:
Run-time error '1004':
Method 'Select' of object'_Worksheet' failed.

( Khi mở sheets khác lên thì sheet Home bị ẩn)
Hiện tại mình đang dùng code sau:


và module thì chạy :


Nhờ các anh chị cao thủ chỉ dạy ạ
Bạn thêm code vào sự kiện Workbook_BeforeClose để khôi phục trạng thái các sheet trước khi đóng file.
 
Upvote 0
Mình có 1 file sheet tất cả đều ẩn, chỉ có 1 sheets home được set mặc định, trên sheet Home có các button đại diện cho các sheets bị ẩn. Nếu người nào mở 1 sheets nào đó, khi đóng lại thì mở lên sẽ bị báo lỗi:
Run-time error '1004':
Method 'Select' of object'_Worksheet' failed.

( Khi mở sheets khác lên thì sheet Home bị ẩn)
Hiện tại mình đang dùng code sau:


và module thì chạy :


Nhờ các anh chị cao thủ chỉ dạy ạ
Đưa file của bạn lên đây rồi người ta giúp cho.
(Nhìn code thì biết đó là code của tôi)
 
Upvote 0
Đưa file của bạn lên đây rồi người ta giúp cho.
(Nhìn code thì biết đó là code của tôi)
Pass: VBA và Protect đều là Admin@123 ạ
P/: Đây là lần đầu tiên mình đụng tay vào VBA, có gì sai sót mong các cao thủ chỉ giáo và hướng dẫn thêm. Cảm ơn ạ
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Pass: VBA và Protect đều là Admin@123 ạ
P/: Đây là lần đầu tiên mình đụng tay vào VBA, có gì sai sót mong các cao thủ chỉ giáo và hướng dẫn thêm. Cảm ơn ạ
Bạn sửa code lại thế này.
Mã:
Private Sub Workbook_Open()
Dim s As String
If UCase(ActiveSheet.Name) <> "HOME" Then
    s = ActiveSheet.Name
    Home.Visible = xlSheetVisible
    Sheets(s).Visible = xlSheetVeryHidden
    Home.Select
End If
End Sub
Tôi thấy trong file của bạn rất nhiều sub lại viết giống nhau, tại sao không viết một lần và dùng cho nhiều lần. Bạn có thể tham khảo file
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn sửa code lại thế này.
Mã:
Private Sub Workbook_Open()
Dim s As String
If UCase(ActiveSheet.Name) <> "HOME" Then
    s = ActiveSheet.Name
    Home.Visible = xlSheetVisible
    Sheets(s).Visible = xlSheetVeryHidden
    Home.Select
End If
End Sub
Tôi thấy trong file của bạn rất nhiều sub lại viết giống nhau, tại sao không viết một lần và dùng cho nhiều lần. Bạn có thể tham khảo file
Đầu tiên xin chân thành cảm ơn bạn đã hỗ trợ. Cũng vì lần đầu mình đụng đến VBA nên cứ phải chơi kiểu thủ công. Sau đó sẽ cố gắng tham khảo và học hỏi thêm. Hy vọng thu gọn được cái đống code đó.
 
Upvote 0
Web KT

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

Back
Top Bottom