VBA Excel Solver Code – Цитирование по столбцам

Я пытаюсь настроить цикл для Solver для данных, хранящихся в 300 столбцах. Это то, что у меня есть до сих пор:

Sub SolverProp() SolverReset SolverOk SetCell:="$B$20", MaxMinVal:=3, ValueOf:="$B$3", ByChange:="$B$28", _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverSolve End Sub 

Этот код решает, что мне нужно для данных, хранящихся в столбце B. Он изменяет B28, пока B20 не станет равным B3. Я пытаюсь сделать его так, чтобы на каждые 300 случаев (настроенных точно так же) он решает уравнение. Например, чтобы решить столбец C, код будет выглядеть так:

 Sub SolverProp() SolverReset SolverOk SetCell:="$C$20", MaxMinVal:=3, ValueOf:="$C$3", ByChange:="$C$28", _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverSolve End Sub 

Вы можете использовать свойство Address объекта Range для прокрутки всех 300 столбцов.

Сначала вам понадобятся 3 переменные для хранения местоположений SetCell, ValueOf и ByChange.

 Dim setCellRange as Range, valueOfRange as Range, byChangeRange as Range Set setCellRange = ActiveSheet.Range("B20") Set valueOfRange = ActiveSheet.Range("B3") Set byChangeRange = ActiveSheet.Range("B28") 

Затем вы можете использовать следующий цикл для итерации по каждому столбцу.

 Dim i as Long For i = 1 to 300 SolverReset SolverOk SetCell:=setCellRange.Address, MaxMinVal:=3, ValueOf:=valueOfRange.Address, ByChange:=byChangeRange.Address, _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverSolve Set setCellRange = setCellRange.Cells(1, 2) Set valueOfRange = valueOfRange.Cells(1, 2) Set byChangeRange = byChangeRange.Cells(1, 2) Next i 

Надеюсь это поможет!

Я выбрал выше, поскольку он обеспечивает рабочее решение. Чтобы добавить к нему, мне пришлось изменить модель, поскольку кажется, что свойство ValueOf не будет принимать диапазон в качестве входных данных, мне пришлось переработать мой модуль, чтобы он возвращал 0 при выполнении условий. Итерационная часть вышеуказанного ответа в порядке, и я принял это как ответ.

  • Solver VBA ActiveCell "застрял"
  • Альтернатива ограничению Alldifferent в Excel 2007
  • Настройки для простой установки Excel Solver
  • Excel solver, переменная ячейка для изменения настраивает набор данных
  • Решающий / Целевой поиск без изменения листа
  • Excel Solver предоставляет различные решения при запуске без изменений
  • Solveradd in excel 2016 - Произошла непредвиденная внутренняя ошибка или исчерпана доступная память
  • Excel Solver с несколькими входными переменными
  • Excel VBA: Solver, похоже, не оптимизирует «со временем» с использованием переменной даты?
  • Внедрение надстройки Excel Solver (или аналогичной функции) в приложении HP Prime «Spreadsheet»?
  • линейное условие не выполнено - MS EXCEL
  • Interesting Posts

    Максимальное значение максимального значения и местоположения excel vba

    В Epplus Convert String Date как Date в Excel

    Справка по Python: реорганизация таблицы Excel (csv)

    Каков наилучший способ совместного использования / распространения макроса Excel?

    Измените все строковые значения в столбце Excel?

    Можно ли передать параметр в инструкцию SELECT запроса MS в виде столбца?

    Как скопировать столбец с формулами и вставить эти значения в один и тот же точный столбец с помощью VBA?

    Сохранение только видимых ячеек из Excel в CSV

    Объединение двух или более смежных диапазонов в единый многодиапазонный диапазон

    Копировать и вставить диапазон значений в следующий пустой столбец на другом листе

    Обрезка текста до после вставки в Excel

    Индекс (малый) эквивалент для VBA, поиск следующего экземпляра вместо одного в цикле

    Полный диапазон ячеек в нескольких книгах из файла

    Столбец автофильтра по количеству цифр в конце строки

    расширенное расширение формулы

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