EXCEL VBA не запускает SOLVER внутри макроса, вызванного кнопкой диаграммы - PullRequest
0 голосов
/ 03 мая 2018

Этот вопрос является заменой для этого вопроса:

EXCEL VBA игнорирует значения изменений Солвера

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

У меня есть следующий фрагмент кода Excel VBA для решения проблемы минимизации:

SolverOk SetCell:="$AP$13", MaxMinVal:=2, ValueOf:=0, ByChange:="$AP$9:$AP$11", Engine:=1
SolverSolve UserFinish:=True

Это выполняется в макросе (Do_Fit), который вызывается нажатием кнопки на рабочем листе. У меня есть еще одна кнопка на листе диаграммы (показывает подгонку), которая также запускает Do_fit. SOLVER запускается, когда я нажимаю кнопку листа, но не когда нажимаю кнопку диаграммы. На листе есть метод Worksheet_change, который содержит следующее утверждение:

If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub

для обработки изменений, внесенных в определенную часть рабочего листа, на которую не влияет Do_fit. Не уверен, что это как-то связано с проблемой, но подумал, что стоит упомянуть. Обновление: когда я отключаю макрос Worksheet_Change, SOLVER по-прежнему не запускается при нажатии кнопки графика

Я попытался сбросить проблему с помощью SolverReset, но это выдает ошибку, говорящую, что Excel был исчерпан.

Я не понимаю, почему SOLVER запускается, когда я нажимаю кнопку рабочего листа, но не кнопку диаграммы, и буду признателен за любые предложения о том, как решить эту проблему

Спасибо!

1 Ответ

0 голосов
/ 05 мая 2018

Следуя совету Джона Пельтье, добавление Sheets("calcs").Activate (calcs - это имя рабочего листа) к коду VBA перед оператором SolverOk сделало свое дело. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...