Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2019, 18:01   #1
mkm
Пользователь
 
Регистрация: 20.10.2019
Сообщений: 17
По умолчанию Ошибка 424 при написании кода

Знающие прошу Вас дать дельный совет, в чем может быть ошибка в данном коде
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
If ТШ.Range("D20").Value = "1" Then
    Range("A100:A103").EntireRow.Hidden = True
    Range("A104:A108").EntireRow.Hidden = False
ElseIf ТШ.Range("D20").Value = "2" Then
    Range("A100:A103").EntireRow.Hidden = False
    Range("A104:A108").EntireRow.Hidden = True
ElseIf ТШ.Range("D20").Value = "3" Then
    Range("A100:A103").EntireRow.Hidden = True
    Range("A104:A108").EntireRow.Hidden = True
End If
End Sub
Вложения
Тип файла: xlsx 01_Пример_02.xlsx (33.7 Кб, 8 просмотров)

Последний раз редактировалось mkm; 28.10.2019 в 18:06.
mkm вне форума Ответить с цитированием
Старый 28.10.2019, 18:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, не уверен, что Вы правильно разместили этот макрос.
во-вторых, у меня выдалась ошибка, что переменная ТШ не опеределена. Вы её где-то задаёте? А зачем? Это же макрос на изменение данных в листе. На другие листы он реагировать не должен.
поэтому указание листа можно выкинуть смело.

01_Пример_02_macros.xlsb.zip

в модуле листа там
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("D20"), Range(Target.Address)) _
           Is Nothing Then
        If Range("D20").Value = "1" Then
            Range("A100:A103").EntireRow.Hidden = True
            Range("A104:A108").EntireRow.Hidden = False
        ElseIf Range("D20").Value = "2" Then
            Range("A100:A103").EntireRow.Hidden = False
            Range("A104:A108").EntireRow.Hidden = True
        ElseIf Range("D20").Value = "3" Then
            Range("A100:A103").EntireRow.Hidden = True
            Range("A104:A108").EntireRow.Hidden = True
        End If
    End If
End Sub

Последний раз редактировалось Serge_Bliznykov; 28.10.2019 в 18:23.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2019, 19:45   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Range("D20").Value = "1"
вообще если ничего особенного не предпринимать, то такого никогда не будет. Там в ячейке всегда будет число, а не текст. Ну как правило (копипаст из текстового файла - это особенное...)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 28.10.2019, 20:13   #4
mkm
Пользователь
 
Регистрация: 20.10.2019
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, не уверен, что Вы правильно разместили этот макрос.
во-вторых, у меня выдалась ошибка, что переменная ТШ не опеределена. Вы её где-то задаёте? А зачем? Это же макрос на изменение данных в листе. На другие листы он реагировать не должен.
поэтому указание листа можно выкинуть смело.
ТШ подразумевал имя листа. Спасибо, заработал!
mkm вне форума Ответить с цитированием
Старый 28.10.2019, 20:28   #5
mkm
Пользователь
 
Регистрация: 20.10.2019
Сообщений: 17
По умолчанию

Цитата:
во-первых, не уверен, что Вы правильно разместили этот макрос
подскажите почему размещение макроса в Worksheet_Change была ошибка?
mkm вне форума Ответить с цитированием
Старый 28.10.2019, 22:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mkm Посмотреть сообщение
Подскажите почему размещение макроса в Worksheet_Change была ошибка?
так нет. Как раз в Worksheet Change — это правильное размещение.
А если этот код поместить в отдельный модуль - то он работать не будет.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в написании кода Scure0 Visual C++ 1 17.02.2019 23:16
ошибка в написании кода Alina1602 Помощь студентам 0 26.11.2018 17:49
Ошибка при написании ассемблеровского кода на Визе 6.0 Познающий Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 03.11.2009 19:09
Помогите в написании кода... sobol556 Паскаль, Turbo Pascal, PascalABC.NET 0 23.03.2009 19:49