Vba excel скрыть таблицу

 

hk1209

Пользователь

Сообщений: 271
Регистрация: 01.01.1970

#1

15.07.2014 12:20:26

всем доброго времени суток
какого кода можно использовать, чтобы скрыть или показывать таблицу (Например: Table1)?
для диаграммы использую следующий код:

Код
Private Sub OptionButton1_Change()
    ActiveSheet.ChartObjects("Chart 10").Visible = False
    If OptionButton1.Value = True Then ActiveSheet.ChartObjects("Chart 10").Visible = True
End Sub
 

пишу следующий код, но там ошибка:

Код
Private Sub OptionButton10_Change()
    ActiveSheet.Range("Table1").Visible = False
    If OptionButton10.Value = True Then ActiveSheet.Range("Table1").Visible = True
End Sub
 

пишет: «object doesn’t support this property or method»

прошу вашей помощи
Заранее спасибо

Изменено: hk120915.07.2014 13:18:27
(исправил код)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Таблица на листе — не объект.
Скрывайте/отображайте строки.

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#3

15.07.2014 13:35:45

Цитата
Скрывайте/отображайте строки.

Виктор а почему только строки, а не столбцы или и то и другое — дискриминация?

Код
ActiveSheet.Range("Table1").EntireColumn.Hidden = True
 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#4

15.07.2014 13:40:24

Цитата
дискриминация

Точно. Листы в опале. Исправить!

Код
Private Sub Worksheet_Deactivate()
     Me.Visible = xlSheetHidden
End Sub

Или очень-очень Hidden — подарок для неподготовленного  :)

 

hk1209

Пользователь

Сообщений: 271
Регистрация: 01.01.1970

всем спасибо за участие
есть ли возможность поставить таблицу на какой-либо объект?
затем использовать Visible (False/True)
потому что в зависимости от фильтра в диаграмме появляется большие данные (их не возможно прочитать), в таких случаях, хочу чтобы у пользователя был выбор между диаграммой и таблицы

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#6

15.07.2014 14:16:31

Цитата
чтобы у пользователя был выбор между диаграммой и таблицы

…, можно диаграмму поместить на отдельный лист (при создании диаграммы предлагается выбор).

 

hk1209

Пользователь

Сообщений: 271
Регистрация: 01.01.1970

#7

15.07.2014 14:26:28

все диаграммы и таблицы на одном листе (Dashboard)
решил по другому: в нижней части диаграммы добавил значения таблицы, они будут видны в любом разрезе (пользователь увидеть и таблицу и диаграмму одновременно)
спасибо за участие и потраченное драгоценное время

Как скрыть или отобразить строки и столбцы с помощью свойства Range.Hidden из кода VBA Excel? Примеры скрытия и отображения строк и столбцов.

Range.Hidden — это свойство, которое задает или возвращает логическое значение, указывающее на то, скрыты строки (столбцы) или нет.

Синтаксис

Expression — выражение (переменная), возвращающее объект Range.

  • True — диапазон строк или столбцов скрыт;
  • False — диапазон строк или столбцов не скрыт.

Примечание

Указанный диапазон (Expression) должен охватывать весь столбец или строку. Это условие распространяется и на группы столбцов и строк.

Свойство Range.Hidden предназначено для чтения и записи.

Примеры кода с Range.Hidden

Пример 1

Варианты скрытия и отображения третьей, пятой и седьмой строк с помощью свойства Range.Hidden:

Sub Primer1()

‘Скрытие 3 строки

Rows(3).Hidden = True

‘Скрытие 5 строки

Range(«D5»).EntireRow.Hidden = True

‘Скрытие 7 строки

Cells(7, 250).EntireRow.Hidden = True

    MsgBox «3, 5 и 7 строки скрыты»

‘Отображение 3 строки

Range(«L3»).EntireRow.Hidden = False

‘Скрытие 5 строки

Cells(5, 250).EntireRow.Hidden = False

‘Скрытие 7 строки

Rows(7).Hidden = False

    MsgBox «3, 5 и 7 строки отображены»

End Sub

Пример 2

Варианты скрытия и отображения третьего, пятого и седьмого столбцов из кода VBA Excel:

Sub Primer2()

‘Скрытие 3 столбца

Columns(3).Hidden = True

‘Скрытие 5 столбца

Range(«E2»).EntireColumn.Hidden = True

‘Скрытие 7 столбца

Cells(25, 7).EntireColumn.Hidden = True

    MsgBox «3, 5 и 7 столбцы скрыты»

‘Отображение 3 столбца

Range(«C10»).EntireColumn.Hidden = False

‘Отображение 5 столбца

Cells(125, 5).EntireColumn.Hidden = False

‘Отображение 7 столбца

Columns(«G»).Hidden = False

    MsgBox «3, 5 и 7 столбцы отображены»

End Sub

Пример 3

Варианты скрытия и отображения сразу нескольких строк с помощью свойства Range.Hidden:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Sub Primer3()

‘Скрытие одновременно 2, 3 и 4 строк

Rows(«2:4»).Hidden = True

    MsgBox «2, 3 и 4 строки скрыты»

‘Скрытие одновременно 6, 7 и 8 строк

Range(«C6:D8»).EntireRow.Hidden = True

    MsgBox «6, 7 и 8 строки скрыты»

‘Отображение 2, 3 и 4 строк

Range(«D2:F4»).EntireRow.Hidden = False

    MsgBox «2, 3 и 4 строки отображены»

‘Отображение 6, 7 и 8 строк

Rows(«6:8»).Hidden = False

    MsgBox «6, 7 и 8 строки отображены»

End Sub

Пример 4

Варианты скрытия и отображения сразу нескольких столбцов из кода VBA Excel:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Sub Primer4()

‘Скрытие одновременно 2, 3 и 4 столбцов

Columns(«B:D»).Hidden = True

    MsgBox «2, 3 и 4 столбцы скрыты»

‘Скрытие одновременно 6, 7 и 8 столбцов

Range(«F3:H40»).EntireColumn.Hidden = True

    MsgBox «6, 7 и 8 столбцы скрыты»

‘Отображение 2, 3 и 4 столбцов

Range(«B6:D6»).EntireColumn.Hidden = False

    MsgBox «2, 3 и 4 столбцы отображены»

‘Отображение 6, 7 и 8 столбцов

Columns(«F:H»).Hidden = False

    MsgBox «6, 7 и 8 столбцы отображены»

End Sub


Т.е. могу ли я скрыть ячейки B2:D4 так, чтобы ячейки B1,C1,D1,A2,A3,A4 остались видны.
Т.е. мне нужно скрыть B2:D4, но так, чтобы это не повлияло на размер, видимость, внешний вид окружающих их ячеейк по вертикали или горизонтали.

Я знаю, звучит немного не так, как таблицы работают, тем не менее.

Суть, на самом деле в том, что у меня есть несколько листов, и на одном из них мне нужно добавлять элементы управления (выпадающие списки, в основном) при нажатии на кнопку ‘Добавить’.
Можно делать это динамически, но это связано с кучей макросов и на эти ячейки ссылаются поля на итоговом листе. Причем при добавлении элементов управления, мне нужно также ‘добавлять’ поля на итоговый лист. При этом под полями на итоговом листе (а еще слева и справа) есть еще другие заполненные ячейки.
Поэтому мне в голову пришла идея: добавить это все сразу, но для начала скрыть, чтобы потом показывать по мере надобности.
Если есть решение получше, с удовольствием приму.

You can use a VBA code to hide or unhide a sheet in Excel. When you right-click on the sheet tab, you can see the option to hide or unhide it, and that same thing you can do with a VBA code.

In this post, we will look at some of the ways and methods that we can use.

Let’s say you want to hide “Sheet1” from the active workbook. In that case, you need to use code like the following.

Sheets("Sheet1").Visible = False

In the above code, you have referred to Sheet1, use the visible property, and changed it to false.

Make a Sheet Very Hidden

There’s one more option that you can use to make a sheet very hidden that cannot be un-hide by the user easily.

Hide a Sheet Based on the Value from a Cell

Alright, if you want to use a cell value instead of directly using the sheet name in the code, you can refer to that cell.

Sheets(Range("A1").Value).Visible = True

This code refers to cell A1 and uses the value from it to refer to the sheet that you want to hide.

Helpful Links: Run a Macro – Macro Recorder – Visual Basic Editor – Personal Macro Workbook

Check Sheet Before Hiding

You can also use a small code like the following to check the sheet that you want to hide exits or not.

Sub vba_hide_sheet()

Dim sht As Worksheet

For Each sht In ThisWorkbook.Worksheets

    If sht.Name = "Sheet1" Then

        sht.Visible = False
        Exit Sub

    End If

Next sht

MsgBox "Sheet not found", vbCritical, "Error"

End Sub

The above code uses the FOR EACH LOOP + IF STATEMENT to loop through each sheet in the workbook. And check for the sheet that you want to hide.

Hide All the Sheets (Except ActiveSheet)

Now there one thing that you need to understand you can’t hide all the sheets. There must be one sheet visible all the time.

Sub vba_hide_sheet()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets

    If ActiveSheet.Name <> ws.Name Then

        ws.Visible = False

    End If

Next ws

End Sub

The above code loops through all the sheets of the workbook, then match each sheet’s name with the active sheet’s name and hide it if it doesn’t match.

VBA Code to Unhide a Sheet

To unhide a sheet, you need to change the visible property to TRUE.

Sheets("Sheet1").Visible = False

If the sheet that you want to unhide it already visible, this code won’t show any error. But if that sheet doesn’t exist, then you’ll get a Run-time error ‘9’.

Use VBA to Unhide All the Hidden Sheets

Imagine you have more than one hidden sheet in a workbook, and if you want to hide them manually, you need to do this one by one.

But here’s the code does this in one go.

Sub vba_unhide_sheet()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets

    If ws.Visible = False Then

        ws.Visible = True

    End If

Next ws

End Sub

It loops through each sheet and un-hides it.

More Tutorials on VBA Worksheets

  • Back to VBA Worksheet / VBA Tutorial

Return to VBA Code Examples

In this Article

  • Hide Sheet in VBA
  • Unhide Sheet
  • Very Hidden Sheets
    • Unhide Very Hidden Sheets
  • Hide / Unhide Sheets in the VBA Editor
  • Hide All Worksheet Tabs
  • Hide / Unhide Sheets in Protected Workbook
  • Unhide All Sheets
  • VBA Coding Made Easy

This tutorial will teach you how to hide and unhide Worksheets with VBA.

Hide Sheet in VBA

To hide a Sheet in VBA, use the worksheet Visible property.

Either set the Visible property to FALSE:

Worksheets("Sheet1").visible = False

or set the Visible property to xlSheetHidden:

Worksheets("Sheet1").visible = xlSheetHidden

This is the same as if the user right-clicked the worksheet tab and selected “hide”.

vba hide sheet

Unhide Sheet

To unhide a Sheet in VBA, use the worksheet Visible property:

Worksheets("Sheet1").Visible = True

or

Worksheets("Sheet1").Visible = xlSheetVisible

Hidden Sheets can be seen by right-clicking in the Worksheet tab area:

vba unhide sheet

Very Hidden Sheets

The Sheet Visible property has a third option: xlSheetVeryHidden:

Worksheets("Sheet1").Visible = xlSheetVeryHidden

Very hidden Sheets are hidden when right-clicking in the Worksheet tab area:

vba very hidden sheet

This code will prevent the spreadsheet user from seeing the Worksheet tab at the bottom of the screen. It also hides the Worksheet from the user when they right-click the tabs at the bottom. The only way to see that the Worksheet exists (or unhide the Worksheet) is by opening the Visual Basic Editor.

Unhide Very Hidden Sheets

Very hidden Worksheets are made visible just like regular hidden Worksheets:

Worksheets("Sheet1").Visible = True

or

Worksheets("Sheet1").Visible = xlSheetVisible

Hide / Unhide Sheets in the VBA Editor

You can also toggle the Worksheet Visible property within the VBA Editor:

vba visible property

Hide All Worksheet Tabs

You might also want to hide the Worksheet Tab area altogether to prevent the user from navigating to different worksheets. Learn more about hiding worksheet tabs.

Hide / Unhide Sheets in Protected Workbook

Your workbook must be unprotected before you can hide or unhide worksheets.  To unprotect your workbook structure use the following code:

ActiveWorkbook.Unprotect

If your workbook structure is password-protected you must do this instead:

ThisWorkbook.Unprotect "password"

Unhide All Sheets

This procedure will unhide all worksheets in a workbook, using a For Each Loop:

Sub Unhide_All_Sheets()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each ws In Worksheets
        ws.Visible = xlSheetVisible
    Next
End Sub

Notice that we first unprotect the workbook, just in case it was password protected.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro – A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

alt text

Learn More!

Понравилась статья? Поделить с друзьями:
  • Vba excel скрыть пароль
  • Vba excel скрыть открытую книгу
  • Vba excel скрыть макросы
  • Vba excel скрыть колонку
  • Vba excel скрыть кнопку на листе