vba excel在日期单元格值上隐藏工作表

vba excel在日期单元格值上隐藏工作表,excel,vba,Excel,Vba,我是一个vba新手,但我喜欢为其他用户创建程序,让他们的工作更轻松。我有一本包含14张工作表的工作簿。我一直在寻找vba代码,根据日期值隐藏其中3张图纸。日期值位于活页1单元格B7上。我想隐藏的3张纸是第2张、第3张和第4张。这3张表格必须在表格1单元格B7的日期前3天未隐藏。根据日期值,我希望工作簿隐藏这3张工作表,并且只有在使用正确的密码取消隐藏这3张工作表时才能取消隐藏。为了找到正确的代码,我花了无数的时间在许多网站上搜寻。请您帮忙好吗?仅凭Excel和您所提供的要求,您不可能完成所需的工

我是一个vba新手,但我喜欢为其他用户创建程序,让他们的工作更轻松。我有一本包含14张工作表的工作簿。我一直在寻找vba代码,根据日期值隐藏其中3张图纸。日期值位于活页1单元格B7上。我想隐藏的3张纸是第2张、第3张和第4张。这3张表格必须在表格1单元格B7的日期前3天未隐藏。根据日期值,我希望工作簿隐藏这3张工作表,并且只有在使用正确的密码取消隐藏这3张工作表时才能取消隐藏。为了找到正确的代码,我花了无数的时间在许多网站上搜寻。请您帮忙好吗?

仅凭Excel和您所提供的要求,您不可能完成所需的工作。即使这些工作表被隐藏,用户仍然可以取消隐藏它们,因为EXCEL允许他们这样做

如果用户同意在未经代码同意的情况下取消隐藏图纸的可能性,请继续尝试以下操作:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myDate As Date
    myDate = Range("b7").Value
    Dim curr_date As Date
    curr_date = Date


    If curr_date >= CDate((myDate) - 3) Then

        ActiveWorkbook.Sheets(2).Visible = xlSheetVeryHidden
        ActiveWorkbook.Sheets(3).Visible = xlSheetVeryHidden
        ActiveWorkbook.Sheets(4).Visible = xlSheetVeryHidden

    Else
        ActiveWorkbook.Sheets(2).Visible = xlSheetVisible
        ActiveWorkbook.Sheets(3).Visible = xlSheetVisible
        ActiveWorkbook.Sheets(4).Visible = xlSheetVisible

    End If
End Sub
请记住,必须调用VB编辑器才能键入上述代码。为此,您需要按Alt+F11,然后您将看到一个包含14张图纸的列表。双击SHEET1可以编写上述代码。只需复制并粘贴到那里。或者,您可以从栏左上方的组合框中选择
工作表
,从右上方选择
更改
,然后将代码粘贴到此处

这是一张简化的图片,可以帮助您理解我的意思:

Mark,如果你喜欢为其他用户创建程序,那么你就不会
search
e
correct
code:)你创建了一个!无论如何。你能告诉我们你试过什么吗?你被困在哪里了?询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另见: