Сокрытие рабочего листа Excel с VBA

Так как этот набор, по сути, является просто троичной системой счисления, мы можем использовать троичную функцию из здесь

def ternary (n):
    if n == 0:
        return '0'
    nums = []
    while n:
        n, r = divmod(n, 3)
        nums.append(str(r))
    return ''.join(reversed(nums))

И вы можете рассматривать это как массив и выполнять итерации к нему через цикл for, который выглядит примерно так:

for i in range(3**5):
    print(ternary(i))

34
задан Teamothy 31 October 2019 в 09:42
поделиться

3 ответа

Чтобы скрыть из пользовательского интерфейса, используйте Формат> Лист> Скрыть

Чтобы скрыть программно, используйте свойство Visible объекта Worksheet . Если вы делаете это программно, вы можете установить лист как «очень скрытый», что означает, что его нельзя отобразить через пользовательский интерфейс.

ActiveWorkbook.Sheets("Name").Visible = xlSheetVeryHidden 
' or xlSheetHidden or xlSheetVisible

Вы также можете установить свойство Visible через панель свойств для рабочего листа в среде VBA IDE ( ALT + F11, ).

68
ответ дан 27 November 2019 в 16:03
поделиться

Вы можете сделать это программно, используя макрос VBA. Вы можете сделать лист скрытым или очень скрытым :

Sub HideSheet()

    Dim sheet As Worksheet

    Set sheet = ActiveSheet

    ' this hides the sheet but users will be able 
    ' to unhide it using the Excel UI
    sheet.Visible = xlSheetHidden

    ' this hides the sheet so that it can only be made visible using VBA
    sheet.Visible = xlSheetVeryHidden

End Sub
20
ответ дан 27 November 2019 в 16:03
поделиться

Это можно сделать в одной строке, пока рабочий лист активен:

ActiveSheet.Visible = xlSheetHidden

Однако вы можете не захотеть этого делать, особенно если вы используете какие-либо операции «выбора» или вы используете какие-либо другие операции ActiveSheet.

6
ответ дан 27 November 2019 в 16:03
поделиться