не уверен, правильно ли это сформулировано для заголовка, при необходимости отредактируйте.
У меня есть код, который в настоящее время работает, делает то, что я хочу.Тем не менее, он не подлежит постоянному обслуживанию, и я ищу способ обновить поле или элемент в листе на основе будущих дат.Я также пробовал вложенные функции, но предпочел бы VBA.Я думаю, что мне понадобится сценарий «For / Next», но я не уверен.
По сути, мне нужно обновить поля в зависимости от того, является ли текущая дата обновления прошлой или будущей.даты на основе полугода.Таким образом, если оно прошло 1 февраля 2019 года, тогда значением является «this».Если дата более поздняя, чем 1 июля 2019 года, значением будет «this».Это будет продолжаться в течение следующих 10 лет.
Лист обновляется ежемесячно, и я хочу, чтобы код знал, что на эту дату пришло время обновить эти другие поля или элементы.Ниже приведено то, что я имею для части кода.Как видите, я просто скопировал это.Кажется грязным, и я уверен, что есть более чистый способ сделать это.Мой инстинкт подсказывает сценарий «для / следующего», но у меня нет навыка делать это без посторонней помощи.
Спасибо.
If Now() > #2/1/2019# Then
Sheets("Mock up Content Page 1").Select
ActiveSheet.Shapes.Range(Array("TextBox 33")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi1 2019 vs Last Year"
ActiveSheet.Shapes.Range(Array("TextBox 54")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi1 2019 vs Last Year" & Chr(13) & ""
ActiveSheet.Shapes.Range(Array("TextBox 77")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi1 2019 vs Last Year" & Chr(13) & ""
End If
If Now() > #7/1/2019# Then
Sheets("Mock up Content Page 1").Select
ActiveSheet.Shapes.Range(Array("TextBox 33")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi2 2019 vs Last Year"
ActiveSheet.Shapes.Range(Array("TextBox 54")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi2 2019 vs Last Year" & Chr(13) & ""
ActiveSheet.Shapes.Range(Array("TextBox 77")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi2 2019 vs Last Year" & Chr(13) & ""
End If
If Now() > #2/1/2020# Then
Sheets("Analysis").Select
ActiveSheet.Shapes.Range(Array("TextBox 33")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi1 2020 vs Last Year"
ActiveSheet.Shapes.Range(Array("TextBox 54")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi1 2020 vs Last Year" & Chr(13) & ""
ActiveSheet.Shapes.Range(Array("TextBox 77")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.text = _
"Semi1 2020 vs Last Year" & Chr(13) & ""
End If