Удаление правил проверки строк за строкой из листа на основе значения столбца G - PullRequest
0 голосов
/ 23 ноября 2018

Hy Эксперты, я использую лист Excel, который имеет несколько столбцов.Каждый столбец имеет правила проверки.Я хочу удалить эти правила проверки при выборе любой строки на всем листе.Когда я выбираю строку, я помещаю значение в G из выпадающего меню.на основе значения столбца G должны быть очищены все правила проверки строк.Лист выглядит так.

введите описание изображения здесь

Код, который я использую, такой же, как и ниже.

Sub RemoveDV()
    Dim ws As Worksheet
    For Each ws In Worksheets
        ws.Cells.Validation.Delete
    Next ws
    MsgBox ("All Validation Rules has been removed successfully")

End Sub

работает нормально, но удаляет весь лист,Но я хочу удалить только строку проверки, над которой я работаю.

Спасибо

1 Ответ

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

Попробуйте это:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Debug.Print Target.Address
    If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 Then
        If Target.Value = "The value that will trigger the validation clearing" Then
            Target.EntireRow.Validation.Delete
        End If
    End If
End Sub

enter image description here

Это будет срабатывать каждый раз, когда вы изменяете значение в столбце "G" указанного листа, и еслиновое значение = текст, который вы хотите.

РЕДАКТИРОВАТЬ:

Допустим, вы храните свои значения (значения, которые будут запускать сценарий) в диапазоне на той же странице, что выможет адаптировать следующий код к вашим потребностям:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Arr: Arr = Application.Transpose(Range("$P$1:$P$12").Value) 'Values stored in "P1:P12"
    If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 Then
        If UBound(Filter(Arr, Target.Value)) > -1 Then
            Target.EntireRow.Validation.Delete
        End If
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...