Excel VBA удаляет содержимое из двух строк, если удаляется третья

#excel #vba

#excel #vba

Вопрос:

Нужна помощь с небольшим кодом.

Я создал следующий код:

 Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    ThisRow = Target.Row
    If Target.Column = 5 Then
        Range("C" amp; ThisRow).Value = Format(DateTime.Now, "hh:mm")
        Range("D" amp; ThisRow).Value = Format(DateTime.Now, "mm/dd/yyyy")
        Range("C:D").EntireColumn.AutoFit
    End If

End Sub
  

В принципе, если я ввел информацию в любую ячейку в столбце E, код отобразит «Время» в той же строке в столбце C и «Дату» в той же строке в столбце D.

Это работает нормально. Однако я хотел бы, чтобы этот код удалял информацию о столбцах C и D, если запись в столбцах E удаляется, а ячейка пуста.

Заранее спасибо за любую помощь.

Ответ №1:

Попробуйте следующий код:

 Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    Dim ThisRow As Long

    ThisRow = Target.Row

    If Target.Column = 5 Then
        ' if current Cell in Column E is empty, clear contents
        If Range("E" amp; ThisRow).Value = "" Then
            Range("C" amp; ThisRow).ClearContents
            Range("D" amp; ThisRow).ClearContents
        Else
            Range("C" amp; ThisRow).Value = Format(DateTime.Now, "hh:mm")
            Range("D" amp; ThisRow).Value = Format(DateTime.Now, "mm/dd/yyyy")
        End If

        Range("C:D").EntireColumn.AutoFit
    End If

End Sub