Активная ячейка VBA Sum to top

Я пытаюсь написать макрос (я ценю, что это можно сделать без VBA, но его часть более крупного макроса, так что это было бы намного лучше, чем в VBA), который по существу имеет список имен контрактов в столбце C и список контрактов в столбце E. Все названия контрактов сгруппированы (т.е. все яблоки будут с Яблоком), в основном я хочу, чтобы VBA очищал положительные и отрицательные значения для каждого контракта и удалял что-нибудь еще, начиная с более высоких номеров строк (либо путем удаления строки, либо изменения значения в столбце E до 0, либо, наоборот, ее снижения), поэтому совокупный для каждого контракта становится равным 0

т.е.

-5 -7 3 8 4 

изменит 4 в конце на 1

Поскольку все контракты сгруппированы, как только это делается для верхнего контракта, для последующих контрактов мне просто нужно проверить сумму от активной ячейки до вершины 0, а не специально для этого контракта

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

Заранее благодарю за любую помощь

С этим вы начали? Я работал с рядом случайных чисел, начиная с A1 до A5, мой номер набора образцов был; -5, -7,3,8,4 Результат изменил последнюю ячейку на "1"

 Sub net_fix() Dim top As Integer Dim bottom As Long Dim running_t As Integer Dim eval As Long Dim net As Long Dim rng As Range running_t = 0 net = 0 top = 1 bottom = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row 'last row with data (change to fit your application) Set rng = Worksheets(1).Range(Cells(top, 1), Cells(bottom, 1)) 'check for all negative or positive numbers eval = 0 For Each cell In rng If cell.Value < 0 Then eval = eval + 1 Next If eval = bottom + 1 - top Then 'all cells were negative so change value to 0 With rng .Value = 0 End With End If eval = 0 For Each cell In rng If cell.Value > 0 Then eval = eval + 1 Next If eval = bottom + 1 - top Then 'all cells were positive With rng .Value = 0 End With End If net = WorksheetFunction.Sum(rng) For i = bottom To top Step -1 'fix the cells from bottom to top until the net = 0 If Not net = 0 Then last_t = Worksheets(1).Cells(i, 1) If net > last_t Then Worksheets(1).Cells(i, 1) = 0: net = WorksheetFunction.Sum(rng) If net < last_t Then Worksheets(1).Cells(i, 1) = last_t - net: net = WorksheetFunction.Sum(rng) End If Next End Sub 
  • Поиск средней транзакции для пользователя в Excel. С двумя критериями для удовлетворения (совпадение пользователей и соответствие месяца) каждая строка является транзакцией?
  • Сумма Excel, если isnumber для несмежного диапазона
  • Функция Excel SUM, заменяющая предварительно сформированную формулу, чтобы включить значение определенного cel
  • Поиск СУММ, кроме некоторых столбцов
  • Количество экземпляров нескольких элементов в Excel
  • Excel sumif над несмежным диапазоном
  • SUMPRODUCT (SUMIF ()) - Как это работает?
  • Excel: как суммировать значения на основе расчета вместо диапазона?
  • Вычисление промежуточного итога с функцией if
  • Excel 2010 - поиск и добавление
  • Получение номеров строк в диапазоне SUMIF из разных ячеек
  • Interesting Posts

    VBA: как добавить целую строку набора записей в список форм

    VBscript для чтения excel – 1. Как получить количество строк для определенного столбца, 2 – чтобы получить количество столбцов определенной строки

    Удалить защищенный вид из листа Excel, открытого программным способом в Access

    Как скопировать и вставить диапазон из одной книги в другую более эффективно в VBA?

    Ввод данных из ячейки в следующий столбец после поиска

    функция для возврата всех отмеченных элементов из списка в ячейку

    django-excel импортирует файлы без перезаписывания базы данных

    Excel VBA: динамический диапазон для ComboBox. Значения Rowsource не отображаются при вызове userForm из командной строки

    Excel VBA – Отдельные данные из функции to-> cell

    Выделение строк, основанных на отсутствии другой строки

    Подсчет уникальных данных в столбце, а затем сопоставление с другими уникальными данными

    excel: ошибка 424 времени выполнения при заполнении ячеек

    VBA: добавление отдельных значений в диапазон до нового диапазона

    Загрузите файл excel, содержащий диаграммы, и вставьте новый столбец, используя Infragistics.Documents.Excel

    excel vlookup с if functionc

    Давайте будем гением компьютера.