Как выполнить цикл while, сохранить формулу в ячейке и применить ее к целой строке? превосходить

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

Скажем, если:

C2 = 10000
H2 (тот, который имеет формулу) = -40 000

Я должен добавить 40 000 от H2 до C2, так что я могу получить 50 000, а H2 достигнет 0. H2 достигнет 0 из-за его формулы.

То, что я пытался сделать, это использовать цикл While Loop. Тем не менее, этот цикл застревает в бесконечности, а также моя H2-клетка теряет формулу.

Это мой код:

Dim n1 As Double Dim n2 As Double Private Sub Worksheet_SelectionChange(ByVal Target As Range) n1 = Cells(2, 8).Value n2 = Cells(2, 3).Value Do While n1 <> 0 n2 = n2 + (n1 * -1) Cells(2, 3).Value = n2 n1 = Cells(2, 8).Value Loop End Sub 

Кроме того, мне нужно применить тот же самый метод, но в каждой строке C и H, где они имеют значение.

Надеюсь, это то, что вы ищете …

 Dim n1 As Double Dim n2 As Double Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lastrow, i As Variant lastrow = Range("C" & Rows.Count).End(xlUp).Row For i = 2 To lastrow n1 = Cells(i, 8).Value n2 = Cells(i, 3).Value Do While n1 <> 0 n2 = n2 + (n1 * -1) Cells(i, 3).Value = n2 n1 = Cells(i, 8).Value Loop Next i End Sub 
Interesting Posts

Автоматически обнаруживать новый файл в папке и печатать на принтере по умолчанию

Как получить правильное среднее значение в стержне, основанном на сводных данных?

Как я могу заставить пользователя выбрать расположение файла в c #

VBA – Копирование листа из одной книги в другую (значения, а не формулы)

Пароль исчезает из ODBC Data Source Administrator

VBA выбирает фигуры на основе их положений

Как импортировать значение ячейки в массив для вставки в БД или объект?

В Python: как написать разреженную матрицу в файл csv?

проверить, открыт ли файл в Python

Есть ли способ .NET, эквивалентный NETWORKDAYS в Excel?

Find'n'Replace непустая ячейка с уникальным значением

VBA случайно останавливает выполнение цикла из-за интернет-перерыва. Как возобновить работу в Интернете?

Рассчитайте совокупный годовой темп роста (CAGR)

Найдите конкретный текст и удалите три строки над ним

Выходной текст Создание / сохранение файла VBA

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