Tạo Combobox không hiển thị tên các sheets bị ẩn

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Vo Duy Minh

Thành viên hoạt động
Tham gia
21/3/19
Bài viết
113
Được thích
32
Chào các bạn,
Một lần nữa mong nhận được sự hỗ trợ của các bạn.
Tôi tạo combobox để chuyển trang như trong file đính kèm (chỉ tạo cho 3 sheets đầu), trong file thì có một số sheets được ẩn theo chế độ VerryHidden.
Vấn đề là trong menu xổ xuống của combobox vẫn hiển thị tên các sheets được ẩn (phải chạy On Error Goto IError để không báo lỗi).
Tôi không rõ có thể tạo menu xổ xuống chỉ có tên các sheet không bị ẩn được không, và khi sheet không còn bị ẩn thì tên sheet lại có trong menu xổ xuống.
Xin được cám ơn các bạn trước.
 

File đính kèm

  • Combobox.xlsm
    44.8 KB · Đọc: 7
Tôi không rõ có thể tạo menu xổ xuống chỉ có tên các sheet không bị ẩn được không, và khi sheet không còn bị ẩn thì tên sheet lại có trong menu xổ xuống.
Anh có thể thêm điều kiện trong vòng for each ws ..... của anh là
Mã:
If ws.Visible = xlSheetVisible Then 'tùy chọn của anh'
     Me.ComboBox1.AddItem ws.Name
 End If
coi thế nào
 
Upvote 0
Cám ơn anh đã quan tâm,
Tôi thử đủ cách nhưng chẳng được. anh có thể bỏ chút công làm với file tôi đính kèm xem thế nào.
Xin lỗi làm anh phải mất thời gian.
Bài đã được tự động gộp:

Cám ơn anh tôi đã làm được rồi.
Xin được cám ơn anh rất nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Vâng, tôi cũng có phần cẩu thả.
Do tôi lơ đểnh đặt End If dưới Next ws nên nó báo lỗi.
Thế là tôi làm đủ cách, mỗi cách càng đi xa hơn và luôn báo lỗi hoặc không được như yêu cầu.
Đó đúng là một bài học tốt cho tôi.
Rất cám ơn bạn Bùi Quang Thuận và bạn Hoàng Tuấn đã quan tâm đến vấn đề của tôi.
Tôi đã đưa vào chương trình chính của tôi và mọi sự "trên cả tuyệt vời".
Cám ơn hai anh thật nhiều.
 
Upvote 0
Vâng, tôi cũng có phần cẩu thả.
Do tôi lơ đểnh đặt End If dưới Next ws nên nó báo lỗi.
Thế là tôi làm đủ cách, mỗi cách càng đi xa hơn và luôn báo lỗi hoặc không được như yêu cầu.
Đó đúng là một bài học tốt cho tôi.
Rất cám ơn bạn Bùi Quang Thuận và bạn Hoàng Tuấn đã quan tâm đến vấn đề của tôi.
Tôi đã đưa vào chương trình chính của tôi và mọi sự "trên cả tuyệt vời".
Cám ơn hai anh thật nhiều.
Hihi. Anh có nói code giúp thành ra anh có thể tham khảo thêm code ở combobox1 như sau.
Mã:
Private Sub Worksheet_Activate()
    Dim Temp(), k&
    Me.ComboBox1.Clear
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Visible = xlSheetVisible Then
            k = k + 1
            ReDim Preserve Temp(1 To k)
            Temp(k) = ws.Name
        End If
    Next ws
    ComboBox1.List = Temp
End Sub
Private Sub ComboBox1_Change()
    If ComboBox1.Value <> "" Then
        Worksheets(ComboBox1.Value).Select
    End If
End Sub
Các combobox tại sheet khác anh cũng có thể làm tương tự. Hi vọng sẽ giúp anh được chút gì đó
 
Upvote 0
Web KT

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

Back
Top Bottom