Макрос для вставки времени в последнюю строку

#excel #vba

Вопрос:

Я хотел бы указать правильное время в последней строке столбца H, но когда я запускаю макрос, он также обновляет время в других строках того же столбца, есть ли способ избежать этого? Спасибо

 Sub orologio()
  Dim y As Integer
  Dim LastRowF As Long
  Worksheets(4).Activate
  Sheets(4).Unprotect
  ActiveCell.EntireRow.Select
  With ActiveSheet
    LastRowF = .Cells(.Rows.Count, "G").End(xlUp).Row
  End With
  For y = 2 To LastRowF
    If Range("E" amp; y) Like "*" Then
      Range(Cells(y, "H"), Cells(y, "H")).Interior.ColorIndex = 44
      Range(Cells(y, "h"), Cells(y, "H")) = Format(Now, "dd/mm/yy hh:mm")
  End If
Next y
End Sub

 

Ответ №1:

Пожалуйста, попробуйте, если это ваш желаемый результат.

 Sub orologio()
  Dim y As Integer
  Dim LastRowF As Long
  
  Worksheets(4).Activate
  Sheets(4).Unprotect

  With ActiveSheet
    LastRowF = .Cells(.Rows.Count, "G").End(xlUp).Row

    ' Removed the FOR-NEXT because you said you only to update the last row.
    If .Range("E" amp; LastRowF) Like "*" Then      
        .Range(Cells(LastRowF, "H")).Interior.ColorIndex = 44
        .Range(Cells(LastRowF, "H")) = Format(Now, "dd/mm/yy hh:mm")
    End If

  End With
End Sub
 

Комментарии:

1. @John22, где вы хотите разместить текущую дату/время, только в последней строке? или для всего столбца H с условием, что столбец E имеет значение? Пожалуйста, уточните, что указано в колонках E, G и H.

2. Привет, посмотрел спокойнее, я не заметил своей ошибки, все работает нормально, спасибо.

Ответ №2:

Если вам нужно только в последней строке H:H, пожалуйста, используйте следующий код. Нет необходимости в активации, выборе или повторении:

 Sub orologio()
  Dim y As Integer, sh4 As Worksheet, LastRowG As Long
  
  Set sh4 = Worksheets(4)
  sh4.Unprotect

  LastRowG = sh4.cells(sh4.rows.count, "G").End(xlUp).row

  With .Range("H" amp; LastRowG)
       .Interior.ColorIndex = 44
       .value = Format(Now, "dd/mm/yy hh:mm")
  End With
End Sub