điều khiển tính chất visible của sheet (2 người xem)

  • Thread starter Thread starter giaosy
  • Ngày gửi Ngày gửi
Liên hệ QC

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

giaosy

Thành viên thường trực
Tham gia
6/12/06
Bài viết
205
Được thích
144
Em muốn tạo một form có các cmd để điều khiển các sheet ẩn hoặc hiện. Bình thường thì để chế độ mặc định là ẩn, khi nào sử dụng đến sheet thì sheet đó mới hiện lên (sau khi click vào cmd trên form) nhằm mục đích đỡ rối mắt.
Nhưng khi để sheet.visible = true hoặc - 1 hoặc xlsheetvisible đều bị báo lỗi khai báo biến sai. **~**
Các bác hướng dẫn em với.
Cảm ơn các bác nhiều.
 
Mình nghĩ vấn đề đơn giản thôi:
-Nếu bạn dùng tên mặc định của excel thì khai báo là:
sheet1.visible = false.
-Nếu bạn dùng tên do mình đặt thì khai báo là:
sheets("tên sheet").visible = false.
 
giaosy đã viết:
Em muốn tạo một form có các cmd để điều khiển các sheet ẩn hoặc hiện. Bình thường thì để chế độ mặc định là ẩn, khi nào sử dụng đến sheet thì sheet đó mới hiện lên (sau khi click vào cmd trên form) nhằm mục đích đỡ rối mắt.
Nhưng khi để sheet.visible = true hoặc - 1 hoặc xlsheetvisible đều bị báo lỗi khai báo biến sai. **~**
Các bác hướng dẫn em với.
Cảm ơn các bác nhiều.

Bạn xem ý tưởng nhé :

Thân!
 

File đính kèm

Cảm ơn bác Mr. Okebab nhiều, đúng là em đang muốn làm cái giống hệt như cái ví dụ của bác.
Nhân tiện, cho em hỏi nhờ, cái cmd hieu1563@gmail.com dùng như thế nào, sao khi em chạy thử thì bị treo máy luôn. Nếu em đoán không nhầm thì dùng để gửi thư đến cho bác nhưng em không tìm thấy đoạn code nào điều khiển cái cmd đó cả.
Bác chỉ giúp cho em với.
 
Lần chỉnh sửa cuối:
Sub GQ()
Dim giaiquyetthang As String
Dim sh As Worksheet
giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
Application.ScreenUpdating = False
Call Hide
For Each sh In ThisWorkbook.Worksheets
With sh.Name = "giaiquyetthang"
.Visible = -1
.Select
End With
Next
Application.ScreenUpdating = True
End Sub
em muốn dùng đoạn code này để chọn lựa sheet cần hiện lên nhưng bị báo lỗi " with object must be user defined type, Object, or varian"
Các bác giúp em với
 
giaosy đã viết:
Sub GQ()
Dim giaiquyetthang As String
Dim sh As Worksheet
giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
Application.ScreenUpdating = False
Call Hide
For Each sh In ThisWorkbook.Worksheets
if sh.Name = giaiquyetthang then
.Visible = -1
.Select
End If
Next
Application.ScreenUpdating = True
End Sub
em muốn dùng đoạn code này để chọn lựa sheet cần hiện lên nhưng bị báo lỗi " with object must be user defined type, Object, or varian"
Các bác giúp em với

Thử cái này xem bác.
 
em đã thử rồi nhưng vẫn báo lỗi "invalid or unqualifined reference". các bác giúp em tiếp với
 
giaosy đã viết:
em đã thử rồi nhưng vẫn báo lỗi "invalid or unqualifined reference". các bác giúp em tiếp với

Bạn cho mình biết tên của sheet bạn muốn hiển thị & bạn nhập cái gì trong Inputbox
 
Có lẽ là code sau:
Mã:
Sub GQ()
Dim giaiquyetthang As String
Dim sh As Worksheet
giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
Application.ScreenUpdating = False
Call Hide
For Each sh In ThisWorkbook.Worksheets
    With sh
        If sh.Name = "giaiquyetthang" Then
            .Visible = -1
            .Select
        End If
    End With
Next
Application.ScreenUpdating = True
End Sub
 
giaosy đã viết:
Sub GQ()
Dim giaiquyetthang As String
Dim sh As Worksheet
giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
Application.ScreenUpdating = False
Call Hide
For Each sh In ThisWorkbook.Worksheets
With sh.Name = "giaiquyetthang"
.Visible = -1
.Select
End With
Next
Application.ScreenUpdating = True
End Sub
em muốn dùng đoạn code này để chọn lựa sheet cần hiện lên nhưng bị báo lỗi " with object must be user defined type, Object, or varian"
Các bác giúp em với

Bạn tham khảo nhé :


PHP:
Sub GQ()
    On Error Resume Next
    Dim giaiquyetthang As String
    Dim Sh As Worksheet
    Dim Tim As Boolean
Nhapten:
    giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
    Application.ScreenUpdating = False
    
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name = giaiquyetthang Then Tim = True
    Next
    If Tim = True Then
        Sheets(giaiquyetthang).Visible = -1
        Sheets(giaiquyetthang).Select
        Call Hide
    Else
        MsgBox ("Khong co Sheet ten la : " & giaiquyetthang)
        GoTo Nhapten
    End If
    Set Sh = Nothing
    Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------------------------------
Sub Hide()
    Dim Shh As Worksheet
    For Each Shh In ThisWorkbook.Worksheets
        If Shh.Name <> ActiveSheet.Name Then Shh.Visible = xlSheetVeryHidden
    Next
    Set Shh = Nothing
End Sub

Thân!
 
Đoạn code trên của Okebab, khi thực hiện sẽ phải nhập tên worksheet, nếu không thì không thể thoát.

LVD
 
levanduyet đã viết:
Đoạn code trên của Okebab, khi thực hiện sẽ phải nhập tên worksheet, nếu không thì không thể thoát.

LVD
Vâng, phải thêm đoạn thoát nữa. Cảm ơn bác .
PHP:
Sub GQ()
    On Error Resume Next
    Dim giaiquyetthang As String
    Dim Sh As Worksheet
    Dim Tim As Boolean
Nhapten:
    giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
    If giaiquyetthang = False Then Exit Sub
    Application.ScreenUpdating = False
    
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name = giaiquyetthang Then Tim = True
    Next
    If Tim = True Then
        Sheets(giaiquyetthang).Visible = -1
        Sheets(giaiquyetthang).Select
        Call Hide
    Else
        MsgBox ("Khong co Sheet ten la : " & giaiquyetthang)
        GoTo Nhapten
    End If
    Set Sh = Nothing
    Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------------------------------
Sub Hide()
    Dim Shh As Worksheet
    For Each Shh In ThisWorkbook.Worksheets
        If Shh.Name <> ActiveSheet.Name Then Shh.Visible = xlSheetVeryHidden
    Next
    Set Shh = Nothing
End Sub
Cảm ơn bác nhiều.

Thân!
 
Cảm ơn các bác nhiều,
Em muốn sử dụng việc điều khiển ẩn hiện của sheet để làm cho ứng dụng của minh không bị rối vì có quá nhiều sheet trong đó.
Em sẽ thử ngay các đoạn code của các bác đã hướng dẫn.
 
Vâng, phải thêm đoạn thoát nữa. Cảm ơn bác .
PHP:
Sub GQ()
    On Error Resume Next
    Dim giaiquyetthang As String
    Dim Sh As Worksheet
    Dim Tim As Boolean
Nhapten:
    giaiquyetthang = InputBox("Nhap thang can nhap so lieu vao day")
    If giaiquyetthang = False Then Exit Sub
    Application.ScreenUpdating = False
    
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name = giaiquyetthang Then Tim = True
    Next
    If Tim = True Then
        Sheets(giaiquyetthang).Visible = -1
        Sheets(giaiquyetthang).Select
        Call Hide
    Else
        MsgBox ("Khong co Sheet ten la : " & giaiquyetthang)
        GoTo Nhapten
    End If
    Set Sh = Nothing
    Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------------------------------
Sub Hide()
    Dim Shh As Worksheet
    For Each Shh In ThisWorkbook.Worksheets
        If Shh.Name <> ActiveSheet.Name Then Shh.Visible = xlSheetVeryHidden
    Next
    Set Shh = Nothing
End Sub
Cảm ơn bác nhiều.

Thân!
Bác cho em hỏi phần bôi đậm đó có nghĩa là gì và tại sao phải set nó là nothing
 
Web KT

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

Back
Top Bottom