隐藏/取消隐藏每月更改的工作表

时间:2018-09-24 13:39:09

标签: excel vba excel-vba

我正在寻找一份每月运行报告的帮助。我正在尝试使报告自动化以减少一些人工时间!目前,我运行着一个庞大的月度报告,可能令人生畏。我正在努力解决的一个问题是,当我尝试每月拉不同的月份时,会自动在工作簿中隐藏/取消隐藏工作表。我已经预先填充了1月-12月18日的工作表,并且正在寻找一种无需手动隐藏/取消隐藏工作表的方法。

我目前已经创建了一个用户窗体,其中通过组合框(FormMonth)选择了月份。用户可以选择JAN-DEC。我还创建了一个单独的文本框,用户可以在其中输入他们要搜索的年份。

EX:尝试取消隐藏工作表。我目前正在尝试取消隐藏标签为JUL18的工作表。我尝试了以下代码:

worksheets(" " & FormMonth & "18").visible = true

我也尝试过

worksheets(" " & FormMonth & "18").visible = xlvisible

我没有运气,希望有人愿意伸出援手。对于奖金,关于如何自动编码以隐藏前几个月工作表的任何帮助也会很棒!例如,如果我要取消隐藏JUL18工作表,我将如何编码以隐藏JUN18工作表。

谢谢

德里克

1 个答案:

答案 0 :(得分:1)

以下子项显示所选月份的工作表,并隐藏所有其他工作表。 请注意,它首先将工作表设置为可见,然后才隐藏其余工作表-否则您可能会尝试隐藏所有工作表,否则将失败。

Sub showMonthSheet(mon As String)
    Const year = "18"

    Dim sheetname As String
    sheetname = mon & " " & year

    ThisWorkbook.Worksheets(sheetname).Visible = True

    Dim ws As Worksheet    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> sheetname Then
            ws.Visible = False
        End If
    Next ws

End Sub

(我假设您的工作表名称类似于 1月18日,前导或尾随空格,但月份名称和年份之间留有空格)