Я надеюсь, что ячейка M4 заполняется, когда я меняю J4 , K4 или L4 на зеленую заливку.

Например: если я поместил дату 12-14 в K4 и изменил фоновую заливку на зеленый, я хочу, чтобы M4 заполнялась датой 12-14 .

1 ответ1

0

Чтобы решить вашу проблему, я хотел бы предложить несколько макросов.

Макрос 1:

Private Sub Worksheet_Change(ByVal Target As Range)

 Set w = ActiveSheet.Range("J4:L4")

 For Each C In w

 If C.Value <> "" And Not IsDate(C) Then
 C.ClearContents

 MsgBox "Only a Date is permitted in this cell."
 End If

 If C.Value = "" And Not IsDate(C) Then
 C.Interior.ColorIndex = 0
 Else
 C.Interior.ColorIndex = 4
 End If

 Next C

End Sub

Макрос 2:

Sub CopyLastCell()
Range("J4").End(xlToRight).Copy
Range("M4").PasteSpecial

Application.CutCopyMode = False
End Sub

Как работает макрос:

  • На активном листе нажмите ALT+F11 чтобы открыть VBA Editor .
  • Скопируйте и вставьте оба макроса как стандартный модуль.
  • 1-й макрос позволит ввести DATE в ячейках J4:L4 и выделить ячейку / ячейки зеленым цветом, если найдет значение DATE .
  • Запустите Macro 2, если вы хотите скопировать значение последней ячейки из J4:L4 в ячейку M4 .

NB

  • Я использовал метод последней ячейки для копирования в M4 потому что вполне возможно, что вы можете ввести DATE во всех ячейках или в нескольких.
  • Диапазон данных J4:L4 , целевая ячейка M4 и значения Color Index доступны для редактирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .