Как автоматически добавить новую строку при выборе определенного значения в ячейке - PullRequest
0 голосов
/ 24 октября 2019

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

У меня есть набор данных:

Data list

У меня настроена проверка данных, чтобы кто-то мог указать Y или N в столбце «Больше проблем».

Мне нужна еще одна строка для заполнения, когдаY выбран без запуска макроса.

Я работаю в Excel 2016 и не уверен, что какие-либо решения для этого.

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Попробуйте этот макрос: поместите в объект листа. * Обновлено

Private Sub Worksheet_Change(ByVal Target As Range)
    'If the cell already has a capital "Y" and you 
    'double click the cell it will insert a row.
    'And typing a "Y" into any other column will not error 

    If Target.Cells.Count > 1 Then Exit Sub

    If Not Intersect(Target, Columns(2)) Is Nothing Then
        If Target.Value = "Y" Then
            Target.Offset(1).EntireRow.Insert Shift:=xlDown
        End If
    End If

End Sub
0 голосов
/ 24 октября 2019

Вот некоторый рабочий код, с которого можно начать. Просто поместите код на лист, который вы используете, щелкнув правой кнопкой мыши вкладку листа и выбрав view code.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
If Not Application.Intersect(Range("B2:B8"), Range(Target.Address)) Is Nothing Then
    Set r = Target
    If r = "Y" Then r.Offset(1, 0) = "populated cell"
End If
End Sub

Анимированный GIF (нажмите, чтобы увидеть подробности) показывает, что ввод N или Y и заполнение ячейки только Y. Спросите, если у вас есть вопросы о том, как это работает.

enter image description here

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