Выберите строки на основе динамических условий - PullRequest
0 голосов
/ 04 декабря 2018

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

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

Хотелось бы, чтобы я не заполнил одно поле ввода, все равно возвращал бы все строки, соответствующие другим критериям (пример: если просто заполнить поле ввода «Issue», он возвращает строки с соответствующей датой выпуска).

Sub filter()

Dim Bookrunner As String
Dim Bond_Type As Variant
Dim Currency_st As String
Dim Year_Issue As Integer

Bond_Type = InputBox("Choose a Bond Type", "Bond Type")
Currency_st = InputBox("Choose a Currency", "Currency")
Year_Issue = InputBox("Chosse the Year of Issuance", "Issue")
Bookrunner = InputBox("Choose a Bookrunner", "Bookrunner")

Dim copyFrom As Range
Dim i As Long

With Feuil1
    For i = 2 To 54
        If .Range("B" & i) = Bond_Type And _
        .Range("K" & i) = Currency_st And _
        .Range("D" & i).Value = Year_Issue And _
        (.Range("R" & i) = Bookrunner Or .Range("S" & i) = Bookrunner Or _
          .Range("T" & i) = Bookrunner Or .Range("U" & i) = Bookrunner Or _
          .Range("V" & i) = Bookrunner Or .Range("w" & i) = Bookrunner) Then
            If copyFrom Is Nothing Then
                Set copyFrom = .Range("B" & i)
            Else
                Set copyFrom = Union(.Range("B" & i), copyFrom)
            End If
        End If
    Next
End With

If Not copyFrom Is Nothing Then copyFrom.EntireRow.Copy Destination:=Sheets("Feuil2").Range("A2")

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