Метод «Диапазон» объекта «_Worksheet» не удалось в Excel VBA, halp? - PullRequest
0 голосов
/ 10 ноября 2018

Хорошо, позвольте мне начать с того, что я новичок в этом. Я слежу за этим пошаговым видео , и я все еще нашел способ как-то все испортить. Я пробовал читать похожие вопросы, но я не очень разбираюсь в VBA, чтобы понять ответы.

По сути, я пытаюсь (и не могу) создать «Менеджер сотрудников». Примерно в 9:44 видео рассказчик сказал, что нам нужно создать макрос, чтобы скрывать и отображать конкретные ячейки в зависимости от того, на какую вкладку мы нажимаем.

Вот мой код для Sheet1:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Target, Range("E4:H4")) Is Nothing Then
       Range("B2").Value = Target.Column
       Range("F2").Select
       SwitchHTabs
    End If
End Sub

И у меня есть этот код под модулями с макросом SwitchHTabs:

Option Explicit

Sub SwitchHTabs()
    Dim SelCol As Long
    Dim FirstRow As Long

    SelCol = ActiveCell.Column

    With Sheet1
        .Range("5:84").EntireRow.Hidden = True
        FirstRow = 5 + ((SelCol - 5) * 20)
        .Range(FirstRow & "." & FirstRow + 19).EntireRow.Hidden = False 'This is the line with the error
    End With
End Sub

Эта ошибка появляется при попытке запустить код:
enter image description here

И когда я нажимаю Отладка, она выделяет следующую строку кода:
enter image description here

Где я все испортил? Я использую Excel 2016. Спасибо!

1 Ответ

0 голосов
/ 10 ноября 2018

Сравните ваши две Range строки в этом подпункте:

.Range("5:84").EntireRow.Hidden = True 'Works
.Range(FirstRow & "." & FirstRow + 19).EntireRow.Hidden = False 'Doesn't Work

Ради аргумента предположим, что FirstRow равно 1, а затем обработаем вторую строку кода:

.Range("5:84").EntireRow.Hidden = True 'Works
.Range("1.20").EntireRow.Hidden = False 'Doesn't Work

Надеюсь, теперь стало проще увидеть, что вы использовали Full-Stop вместо двоеточия.

(В качестве отступления - вместо этого можно использовать .Rows("5:84").Hidden, чтобы устранить необходимость в .EntireRow)

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