Excel vba увеличивает значение ячейки без создания круговой ссылки

У меня есть электронная таблица, в которой ячейки D4:D93 представляют собой выпадающие списки Data Validation с параметрами Yes и No as.

Я пытаюсь выяснить, как закодировать VBA так, чтобы при I4:I93 Yes в ячейке этого диапазона значение в совпадающей ячейке в диапазоне I4:I93 изменяется на сумму совпадающих ячеек в I4:I93 и V4:V93 .

Я искал дни и пытался так много вещей, что даже не знаю, с чего начать, насколько я пробовал. Некоторые попытки не привели к тому, что ничего не произошло. Другие привели к замораживанию или сбою Excel из-за циклических ссылок. Не знаю, является ли это актуальным, но D4:D93 и I4:I93 являются частью таблицы, но V4:V93 – нет.

Попробуйте этот макрос события рабочей таблицы:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim D As Range, rw As Long Set D = Range("D4:D93") If Intersect(Target, D) Is Nothing Then Exit Sub If LCase(Target.Value) <> "yes" Then Exit Sub rw = Target.Row Application.EnableEvents = False Range("I" & rw).Value = Range("I" & rw).Value + Range("V" & rw).Value Application.EnableEvents = True End Sub 

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

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel.
  2. выберите «Просмотреть код» – это вызывает окно VBE
  3. вставьте содержимое и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте его на пробном листе.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003 года, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. поднимите окна VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы узнать больше о макросах в целом, см.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о Макросах событий (код рабочей таблицы), см.

http://www.mvps.org/dmcritchie/excel/event.htm

Для этого необходимо активировать макросы!

Interesting Posts

Функция, которая находит первое отрицательное число в диапазоне

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

Excel извлекает все данные выпадающего списка в столбце

Вы можете сканировать листы Excel для столбцов, которые имеют данные формата кредитной карты через C #

Ошибка при импорте в Excel

Есть ли способ редактировать xlsx книги, содержащие изображения в Python?

экспорт excel не может получить много данных из mysql

Если некоторые символы добавят запятую

Как удалить пустые строки между листом с помощью POI?

Самый простой способ чтения из Excel и Word файлов в .NET.

Разделение поворотного элемента с силового поворота на несколько диаграмм

Как улучшить освежающую скорость сводной таблицы

Excel VBA: Clear Filters ведет себя по-разному в разных системах

VBA правильный способ очистки / сброса документа Excel?

PowerShell Excel Automation Сохранить книгу по дате

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