Выполните несколько действий в зависимости от результата If .Found = True - PullRequest
0 голосов
/ 05 мая 2020

Я хотел бы знать, как выполнить несколько действий, все из которых зависят от результата If .Found = True ?? В представленном ниже фрагменте макроса после If .Found = True выполняется только одно действие: If .Found = True Then mySheet.Cells(x, 5) = mySheet.Range("AD17")

И мне нужно написать 4 разные строки, которые я хочу выполнить If .Found = True.

     If Application.WorksheetFunction.CountA(mySheet.Range("A12:D15")) = 2 And _
              mySheet.Range("E12") = "????" And _
              mySheet.Range("H12") = "k" Then
                rng.SetRange Start:=startPos, End:=endPos
                  With rng.Find
                   .Text = arr(0) & " " & arr(wrdCount1 - 1) & " oświadcza ponadto, że jest wdową."
                   .MatchWildcards = False
                   .MatchCase = False
                   .Forward = True
                   .Execute
                     If .Found = True Then mySheet.Cells(x, 5) = mySheet.Range("AD17")   
                                 'how to insert more actions after IF .Found here without repeating If statement;
                 End With
     ElseIf Application.WorksheetFunction.CountA(mySheet.Range("A12:D15")) = 2 And _
           mySheet.Range("E12") = "????" And _
           mySheet.Range("H12") = "m" Then
               rng.SetRange Start:=startPos, End:=endPos
               With rng.Find
                  .Text = arr(0) & " " & arr(wrdCount1 - 1) & " oświadcza ponadto, że jest wdowcem."
                  .MatchWildcards = False
                  .MatchCase = False
                  .Forward = True
                  .Execute
                   If .Found = True Then
                       mySheet.Cells(x, 5) = mySheet.Range("AD18")
                   Else
                       rng.SetRange Start:=startPos, End:=endPos
                       With rng.Find
                           .Text = "a przedmiotowego nabycia dokona do majątku osobistego za pieniądze pochodzące z jego majątku osobistego,"
                           .MatchWildcards = False
                           .MatchCase = False
                           .Forward = True
                           .Execute
                       If .Found = True Then mySheet.Cells(x, 6) = mySheet.Range("AE14")  
                                   'how to insert more actions after IF .Found here without repeating If statement;
                       End With
                   End If
             End With
     End If

Мне нужно заполнить 3 или 4 разные ячейки в зависимости от результата If .Found = True, не повторяя If .Found = True Then в каждой строке.

Я ищу какой-нибудь элегантный код.

     If .Found = True Then mySheet.Cells(x, 6) = mySheet.Range("AE14") And _
                       mySheet.Cells(x, 7) = "red" And _
                       mySheet.Cells(x, 8) = "100 000" And _
                       mySheet.Cells(x, 10) = mySheet.Range("AE25") * 0,23

1 Ответ

2 голосов
/ 05 мая 2020

Просто должно работать

If .Found = True Then 
          mySheet.Cells(x, 6) = mySheet.Range("AE14") 
          mySheet.Cells(x, 7) = "red" 
          mySheet.Cells(x, 8) = "100 000" 
          mySheet.Cells(x, 10) = mySheet.Range("AE25") * 0,23
End if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...