VBA Посмотрите столбец вниз, чтобы найти определенные критерии c, затем ячейку SUM после ячейки с критериями - PullRequest
0 голосов
/ 07 мая 2020

В настоящее время я пытаюсь найти способ просмотреть один столбец, чтобы найти конкретный критерий c, и в этом случае я хочу найти даты менее чем 16.04.20. Как только эти критерии будут выполнены, я хочу СУММИРОВАТЬ ячейку ниже для всех удовлетворенных критериев в этом столбце. Это изображение моего набора данных

Dataset.

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

Использование «Если ячейка содержит» в VBA excel

Sub AddDashes()

Dim SrchRng As Range, cel As Range

Set SrchRng = Range("RANGE TO SEARCH")

For Each cel In SrchRng
   If InStr(1, cel.Value, "TOTAL") > 0 Then
      cel.Offset(1, 0).Value = "-"
   End If
Next cel

End Sub

Не уверен, что я на правильном пути. Также было бы неплохо, если бы я мог изменить код, чтобы проверить диапазон и 1 столбец, спасибо.

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

В этом примере вам нужно выбрать диапазон дат (только по одной строке за раз) для запуска кода. Это также позволяет вам вводить дату (я предполагаю, что она меняется со временем, поэтому это должно быть полезно)

Sub SumByDate()

Dim DateRange As Range
Dim c As Range
Dim d As Range
Dim SearchDateInput As String
Dim SearchDate As Date

Set DateRange = Application.InputBox("Select a range", "Get Range", Type:=8) 'Select Date Range
SearchDateInput = Application.InputBox("Enter A Date") 'enter as mm/dd/yyyy
SearchDate = DateValue(SearchDateInput) 'this converts date entered as string to date format


For Each c In SrchRng 'for each date in list of dates
Set d = c.Offset(1, 0) 'pionts out cells to sum- in this case the cell beneath the date
   If c < SearchDate Then 'if date is less than input date
      Sum = Sum + d 'sum the date if true
   End If
Next c 'goes to next date in row

DateRange.Cells(1, 1).Offset(2, -1) = Sum 'inputs all summed values into cell that is two down, one to the left of first date cell

End Sub
0 голосов
/ 08 мая 2020
Sub SumByDate()

Dim SrchRng As Range
Dim c As Range
Dim d As Range
Dim lCol As Long
Dim ColLtr As String
Dim SearchDate As Date

lCol = Cells(2, Columns.Count).End(xlToLeft).Column
ColLtr = Split(Cells(1, lCol).Address, "$")(1)
Set SrchRng = Range("B2:" & ColLtr & "2")
SearchDate = DateValue("04/16/2020")


For Each c In SrchRng
Set d = c.Offset(1, 0)
   If c < SearchDate Then
      Sum = Sum + d
   End If
Next c

Range("A4") = Sum

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