ОБНОВЛЕН С FIX К выходу за пределы и подобрать АНОМАЛИИ +/- «s»
Предоставления у вас есть только 5 пунктов, как в вашем примере, в противном случае я бы создать массивы элементов для хранения итоговые значения, каждый цикл, проходящие через массив, чтобы увидеть, существует ли следующий элемент в массиве, чтобы добавить общее количество и добавить его в массив, если нет.
Sub test()
Dim arr As Variant
Dim n, Apples, Oranges, Banana, Mangoes, Melon As Integer
Apples = 0
Oranges = 0
Banana = 0
Mangoes = 0
Melon = 0
n = 0
For Each Cell In Sheets(1).UsedRange.Cells
If IsEmpty(Cell) Then GoTo 0
arr = Split(Cell, "=")
If Left(arr(0), 5) = "Apple" Then
Apples = Apples + arr(1)
End If
If Left(arr(0), 6) = "Orange" Then
Oranges = Oranges + arr(1)
End If
If Left(arr(0), 6) = "Banana" Then
Banana = Banana + arr(1)
End If
If Left(arr(0), 5) = "Mango" Then
Mangoes = Mangoes + arr(1)
End If
If Left(arr(0), 5) = "Melon" Then
Melon = Melon + arr(1)
End If
0
Next
Sheets(2).Cells(1, 2).Value = Apples
Sheets(2).Cells(2, 2).Value = Oranges
Sheets(2).Cells(3, 2).Value = Banana
Sheets(2).Cells(4, 2).Value = Mangoes
Sheets(2).Cells(5, 2).Value = Melon
End Sub
Если это то, что вам действительно нужно VBA (это нужно делать несколько раз или с большим объемом данных), я бы изучил источник данных и попросил его выпустить его в удобном для использования формате. Одна колонка - Fruit, а следующая колонка - Qty. Это сделало бы вашу жизнь предельно простой и вообще не нужна для VBA. – Rdster
приведенный выше пример. В исходном файле содержится большое количество данных, сгенерированных как файл csv. Я хотел бы понять логику о том, как разбить числа и затем посчитать их. – Jane
Если вы хотите избежать VBA, вы можете рассмотреть возможность размещения всех ячеек в одном столбце, а затем с помощью «Text to Columns» на вкладке «Data» на ленте. Затем вы можете просто использовать некоторые формулы 'COUNTIF()'. Это был бы самый простой маршрут. – Brian