Написание простого макроса - PullRequest
0 голосов
/ 04 марта 2020

Я просто хочу написать простой макрос, но так как я новичок в написании макросов, я нахожу это очень сложным.

В рабочей тетради три листа. Когда я открываю рабочую книгу, я просто хочу, чтобы страница 1 (СТАРТ) отображалась, и только после того, как они нажали кнопку «Включить содержимое», на ней должны появиться другие два листа. Это код, который я пробовал, не могли бы вы дать мне знать, что я делаю не так?

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Step 1: Declare your variables
  Dim ws As Worksheet
'Step 2: Unhide the Starting Sheet
  Sheets("START").Visible = xlSheetVisible
'Step 3: Start looping through all worksheets
  For Each ws In ThisWorkbook.Worksheets
'Step 4: Check each worksheet name
  If ws.Name <> "START" Then
'Step 5: Hide the sheet
  ws.Visible = xlVeryHidden
  End If
'Step 6: Loop to next worksheet
  Next ws
'Step 7: Save the workbook
  ActiveWorkbook.Close
End Sub

Private Sub Workbook_Open()
'Step 1: Declare your variables
  Dim ws As Worksheet
'Step 2: Start looping through all worksheets
  For Each ws In ThisWorkbook.Worksheets
'Step 3: Unhide All Worksheets
  ws.Visible = xlSheetVisible
'Step 4: Loop to next worksheet
  Next ws
'Step 5: Hide the Start Sheet
  Sheets("START").Visible = xlVeryHidden
End Sub

1 Ответ

0 голосов
/ 04 марта 2020

Ваша процедура Workbook_Open делает все листы видимыми (хорошо, потому что вам следует избегать скрытия всех), а затем скрывает лист START (плохо, потому что вы хотите, чтобы этот лист был видимым). Попробуйте этот код вместо.

    Private Sub Workbook_Open()

    Dim Ws As Worksheet

    On Error Resume Next                    ' in case there is no such sheet
    With Worksheets("START")
        .Visible = xlSheetVisible
        .Activate
    End With

    If Err.Number = 0 Then                  ' abandon if there is no START
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name <> "START" Then
                Ws.Visible = xlSheetVeryHidden
            End If
        Next Ws
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...