VBA: Если затем с 2 заявлениями после этого - PullRequest
0 голосов
/ 28 февраля 2019

Как я могу написать оператор if then, где, если что-то верно, тогда 2 действия будут выполнены?Например:

Sub button()

If Range("B17").Value = 1 Then
Range("C3:F3") = Range("C21:F21").Value And 
Range("C10:F10") = Range("C22:F22").Value

Else

...

End If 

End Sub

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Попробуйте:

Option Explicit

Sub button()

    'First declare your workbook & worksheet
    With ThisWorkbook.Worksheets("Sheet1")
        If .Range("B17").Value = 1 Then
            .Range("C3:F3").Value = .Range("C21:F21").Value
            .Range("C10:F10").Value = .Range("C22:F22").Value
        Else

        End If

    End With

End Sub
0 голосов
/ 28 февраля 2019

В VBA And является логическим соединением , в котором A And B оценивается как True тогда и только тогда, когда A и B оба равны True.Это не форма пунктуации, в которой написано «сделай A, а затем сделай B».Вы можете просто удалить And:

If Range("B17").Value = 1 Then
    Range("C3:F3") = Range("C21:F21").Value
    Range("C10:F10") = Range("C22:F22").Value
Else

    ...

End If 

без проблем.

Также обратите внимание, что предложение Else является необязательным в VBA.Если все, что вам нужно, - это выполнить два действия, если какое-либо условие истинно, и у вас нет альтернативных действий, если оно ложно, вы можете просто полностью пропустить часть Else.

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