Мне нужно проверить, равен ли диапазон дат СЕГОДНЯ, и скопировать значения ниже диапазона дат в новую ячейку VBA Excel. - PullRequest
0 голосов
/ 07 ноября 2019

Так что я пытаюсь выяснить это в течение довольно долгого времени и 0 удачи, единственное, что мне удалось сделать, это сделать 1 на 1 и только несколько копий пасты, что очень много.

My table

Sub copyModes()

If Range("R29") = Date Then
    Range("R30:R34").Select
    Selection.Copy
    Range("P37:P41").Select
    ActiveSheet.Paste
End If

If Range("U29") = Date Then
    Range("U30:U34").Select
    Selection.Copy
    Range("P37:P41").Select
    ActiveSheet.Paste
End If

If Range("S29") = Date Then
    Range("S30:S34").Select
    Selection.Copy
    Range("P37:P41").Select
    ActiveSheet.Paste
End If

If Range("T29") = Date Then
    Range("T30:T34").Select
    Selection.Copy
    Range("P37:P41").Select
    ActiveSheet.Paste
End If

If Range("V29") = Date Then
    Range("V30:V34").Select
    Selection.Copy
    Range("P37:P41").Select
    ActiveSheet.Paste
End If

End Sub

В основном у меня есть несколько горизонтальных диапазонов дат, и мне нужно посмотреть, один из них = сегодня, и если да, скопировать значения ячеек под датой и вставить их в новую ячейку.

Спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Вы можете использовать общую подпрограмму следующим образом:

Sub CheckRangeAndCopy(rng As Range)
    If rng.value = Date Then
        rng.Offset(1, 0).Resize(5, 1).Copy Range("P37:P41")
    End If
End Sub

И затем назвать ее:

CheckRangeAndCopy Range("T29")
CheckRangeAndCopy Range("V29")
' and so on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...