Я использую Excel 2013. Я новичок в VBA. Я нашел код, который будет просто скрывать 2 строки (36 и 37), если моя ячейка N39 равна "Пройдено"

Я нашел этот код, но получил сообщение "Обнаружено неоднозначное имя" Worksheet_Change »

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("N39").Value = "Passed" Then
        Rows("36:37").EntireRow.Hidden = True
    ElseIf Range("N39").Value = "Failed" Then
        Rows("36:37").EntireRow.Hidden = False

    End If
End Sub

поэтому я попробовал имя моего листа, но он ничего не делает

Private Sub NRF(ByVal Target As Range)
    If Range("N39").Value = "Passed" Then
        Rows("36:37").EntireRow.Hidden = True
    ElseIf Range("N39").Value = "Failed" Then
        Rows("36:37").EntireRow.Hidden = False
    End If
End Sub

Может быть потому, что у меня есть другой код выше?

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim celltxt As String
    celltxt = ActiveSheet.Range("E39").Text
    If InStr(1, celltxt, "P670-Staffing") Then
    MsgBox "Add the job title and type of hire in the description cell - column H" & vbNewLine & vbNewLine & "If this is a new position, please obtain your HRBP's approval"
    End If
End Sub

Есть идеи, что я делаю не так?

2 ответа2

0

Этот код работает на моем компьютере (Windows 7 x64, Excel 2016):

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("N39").Value = "Passed" Then
        Rows("36:37").EntireRow.Hidden = True
    ElseIf Range("N39").Value = "Failed" Then
        Rows("36:37").EntireRow.Hidden = False
    End If
End Sub

Я думаю, что неправильное написание слова "Rows" как "ows" может иметь к этому отношение. И мне также пришлось удалить посторонний перевод строки, чтобы заставить его работать.

0

Есть идеи, что я делаю не так?

Я нашел этот код, но получил сообщение "Обнаружено неоднозначное имя" Worksheet_Change »

У вас не может быть двух функций с одинаковым именем и параметрами Worksheet_Change .

Я удалил предыдущий код, и он работает. Как это могло заставить это работать с другим кодом?

Вам нужно поместить весь код в одну функцию Worksheet_Change .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .