Можно ли повторить определенную операцию дважды, но только по понедельникам? - PullRequest
0 голосов
/ 22 января 2019

Мне нужна помощь с макросом ниже.

Я запускаю макрос для своего отчета ежедневно. Но только по понедельникам мне нужно повторить следующие операции в два раза больше (всего 3 раза):

Range("B8").End(xlToRight).Offset(, 0).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste

Range("B9").End(xlToRight).Offset(, 0).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste

Я предполагаю, что мне нужно использовать оператор Weekday(Now()) = vbMonday, но не уверен на 100%, как использовать его с приведенным выше кодом.

Заранее спасибо!

1 Ответ

0 голосов
/ 22 января 2019

Есть как минимум два способа сделать это.Первый состоит в том, чтобы сделать его отдельным Sub и вызывать его явно 3 раза в понедельник.

Sub TestMe()

    If Weekday(Now()) = vbMonday Then
        SomeSelection
        SomeSelection
        SomeSelection
    End If

End Sub

Sub SomeSelection()
    'OP Code
End Sub

Второй - создать цикл и убедиться, что он повторяется 3 раза в понедельник:

Sub TestMe()

    Dim repeater As Long: repeater = 1
    If Weekday(Now()) = vbMonday Then repeater = 3

    Dim counter As Long
    For counter = 1 To repeater
        Range("B8").End(xlToRight).Offset(, 0).Select
        'OP code...
        ActiveSheet.Paste
    Next

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