Обновление столбцов Excel 2019 с использованием VBA - PullRequest
0 голосов
/ 06 марта 2019

Я нашел этот код VBA, который в настоящее время заполняет поля E и F датой / временем и обновляет столбец F только датой / временем, когда обнаруживает изменение в диапазоне A2: D50.Работает красиво и спасибо автору.Я хотел бы сделать следующее:

  • для заполнения поля E, если есть изменение в диапазоне B2: B50.
  • , и заполнения поля F, если есть изменение в диапазоне D2:D50.

Я пытался изменить код и мог заполнить поле E, но не могу обновить поле F.

Private Sub Worksheet_Change(ByVal Target As Range)
    'Timestamp Data
    '   TeachExcel.com - Original Author

    Dim myTableRange As Range
    Dim myDateTimeRange As Range
    Dim myUpdatedRange As Range

    'Your data table range
    Set myTableRange = Range("A2:D50")

    'Check if the changed cell is in the data tabe or not.
    If Intersect(Target, myTableRange) Is Nothing Then Exit Sub

    'Stop events from running
    Application.EnableEvents = False

    'Column for the date/time
    Set myDateTimeRange = Range("E" & Target.Row)
    'Column for last updated date/time
    Set myUpdatedRange = Range("F" & Target.Row)

    'Determine if the input date/time should change
    If myDateTimeRange.Value = "" Then   
        myDateTimeRange.Value = Now 
    End If

    'Update the updated date/time value
    myUpdatedRange.Value = Now

    'Turn events back on
    Application.EnableEvents = True
End Sub

1 Ответ

1 голос
/ 13 мая 2019

Установите myTableRange в B2:B50.Затем измените ваше заявление IF на: If Not Intersect(Target, myTableRange) Is Nothing Then.Если Target находится в диапазоне, выполните ваши действия.Если Target не находится в этом диапазоне, сбросьте myTableRange на D2:D50 в Else.Затем проверьте, находится ли ваш Target в этом диапазоне.Если это так, выполните ваши шаги

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