Добавить отметку времени в определенном диапазоне при нажатии на CommandButton - PullRequest
1 голос
/ 03 апреля 2020

Я создаю макрос, который будет использоваться в качестве инструмента повышения производительности. Это метки времени ячейки в определенном диапазоне, скажем, I8: I58 при нажатии CommandButton A. I8 получает метку времени. После нажатия на CommandButton B, это отметки времени I8Col + 2. Вы получаете свое рабочее время, вычитая одно из другого.

Когда вы нажимаете CommandButton A во второй раз, I9 получает метку времени и т. Д.

Как мне это сделать? У меня проблемы с определением пользовательского диапазона.

Я пытался использовать

Private Sub CommandButton1_Click()
If IsEmpty(Range("I8")) Then
Range("I8").Value = Now
Else 
Range("I" & Cells(Rows.Count, "I").End(xlUp).Row + 1).Value = Now

Но это не сработает для меня, так как столбец I содержит данные ниже определенного диапазона I8: I58. Это будет просто отметка времени клетки внизу листа.

Я почти уверен, что здесь должно быть очень простое решение

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Я думаю, что вы были близки. Почему ты не используешь это?

If IsEmpty(Range("I8")) Then
Range("I8").Value = Now
Else 
Range("I" & Range("I59").End(xlUp).Row + 1).Value = Now 
'As the max row this can give is: I58. So nothing will ever be printed outside the range.
0 голосов
/ 03 апреля 2020

попробуйте

Private Sub CommandButton1_Click()
    If IsEmpty(Range("I8")) Then
        Range("I8").Value = Now
    Else
        With Cells(Rows.Count, "I").End(xlUp) ' reference last not empty cell in column I
            If .Row < 58 Then .Offset(1).Value = Now ' if its is less then 57 then stamp on next row
        End With
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...