Код VBA, чтобы выбрать только диапазон, в настоящее время получает несколько ошибок - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь написать код, включающий автоматическую вставку следующей строки, если выбрано определенное текстовое поле.

Кто-то помог мне с отправной точкой с кодом. Единственная проблема заключается в том, что когда я ввожу код и вкладку в следующую ячейку для ввода данных, это дает мне «ошибку времени выполнения 91».

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

Оригинальный код гласит:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Set rng = Columns(2)
    If Intersect(rng, Target).Value = "Y" Then             
        Target.Offset(1).EntireRow.Insert Shift:=xlDown
    End If

End Sub

Моя правка:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Set rng = Range("A1:A30")

    If rng("A1:A30").Value = "Y" Then
        Target.Offset(1).EntireRow.Insert Shift:=xlDown
    End If

End Sub

: я все еще получаю сообщение об ошибке.

Может ли кто-нибудь помочь мне объяснить это?

1 Ответ

3 голосов
/ 25 октября 2019

Вы не можете сравнить диапазон нескольких ячеек с "Y".

Я думаю, что-то вроде этого - то, что вы ищете:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range
    Set rng = Intersect(Target, Me.Range("A1:A30"))
    If rng Is Nothing Then Exit Sub

    Dim cell as Range
    For Each cell in rng
        If cell.Value = "Y" Then
            cell.Offset(1).EntireRow.Insert Shift:=xlDown
        End If
    Next cell
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...