Скрытие / отображение рабочих таблиц, которые меняются ежемесячно - PullRequest
0 голосов
/ 24 сентября 2018

Мне нужна помощь с ежемесячным отчетом, который я запускаю.Я пытаюсь автоматизировать отчет, чтобы сократить время ручного труда!В настоящее время я запускаю большой ежемесячный отчет, который может быть пугающим.Одна из областей, с которыми я сталкиваюсь, - это автоматическое скрытие / скрытие рабочих листов в рабочей книге, поскольку я пытаюсь использовать разные месяцы каждый месяц.Я уже заполнил рабочие листы для JAN - DEC 18 и ищу способ, где мне не нужно скрывать / показывать листы вручную.

В настоящее время я создал пользовательскую форму, в которой месяц выбирается с помощью комбинированного списка (FormMonth).Пользователь может выбрать JAN - DEC.Я также создал отдельное текстовое поле, в котором пользователь может ввести год, который он ищет.

EX: Попытка показать рабочие листы.В настоящее время я пытаюсь отобразить рабочий лист с меткой JUL18.Я попробовал следующий код:

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

Я также попытался

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

У меня нет удачи, и я надеялся, что кто-то захочет протянуть руку.В качестве бонуса, любая помощь в том, как я могу автоматически кодировать, чтобы скрыть листы за предыдущие месяцы, была бы отличной!Например, если я показываю листы JUL18, как бы я написал код, чтобы скрыть листы JUN18.

Спасибо,

Дерек

1 Ответ

0 голосов
/ 24 сентября 2018

Следующий подпункт показывает рабочий лист за выбранный месяц и скрывает все остальные.Обратите внимание, что сначала он устанавливает видимость листа, а только после этого скрывает остальные, иначе вы рискуете попытаться скрыть все листов, и это не удастся.

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

(я полагаючто имена ваших таблиц имеют вид 18 января без начального или конечного пробела, но с пробелом между названием месяца и годом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...