Когда ID = определенное значение, сумма двух значений в соответствии с ID - PullRequest
0 голосов
/ 31 мая 2019

Файл # может появляться несколько раз.Когда файл № = 52,56,67 сум Рег. Часов и O / T часов.Также очистите O / T Часы для 52,56,67.

Данные:

enter image description here

Я пытался вычислить по местоположению ячейкизатем я понял, что местоположение не фиксируется каждый раз, когда я экспортирую новый отчет.

Sub Calculation()
  If range ("C2:C14")=52,56,67 THEN
    Range("G48").Formula = "=Sum(h48:i48)"
    Range("I48").Clear
    Range("G68").Formula = "=Sum(h68:i68)"
    Range("i68").Clear
    Range("G8").Formula = "=Sum(h8:i8)"
    Range("I8").Clear
  End If
End sub

Мой фактический результат очищает O / T час перед вычислением.И это не относится к файлу #

1 Ответ

0 голосов
/ 01 июня 2019

Добро пожаловать на SO.If утверждение работает не совсем так ...

If range ("C2:C14")=52,56,67 THEN

должно быть If Range("C2:C14") = 52 or Range("C2:C14") = 56 or Range("C2:C14") = 67 Then...

Но для хорошей практики вы всегда должны квалифицировать свои диапазоны.. см. ниже один способ сделать то, что вы пытаетесь достичь, и дополнительные комментарии:

Sub Calculation()
    Dim ws As Worksheet: Set ws = ActiveWorkbook.ActiveSheet 'declare and allocate your worksheet, even better use .Sheets("sheet name")
    Dim lRow As Long: lRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row 'get the last row in column C
    Dim R As Long

    For R = 2 To lRow 'iterate through all rows
        With ws
            Select Case .Cells(R, "C").Value
                Case 52, 56, 67
                    .Cells(R, "G") = .Cells(R, "H") + .Cells(R, "I") 'sum the values and allocate
                    .Cells(R, "I").Clear 'clear the value
            End Select
        End With
    Next R

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