Compartilhar via


Função SolverAdd

Adiciona uma restrição ao problema atual. Equivalente a clicar em Solucionador no grupoAnálise de Dados | e, em seguida, clicar em Adicionar na caixa de diálogo Parâmetros do Solucionador.

Nota O suplemento Solver não está habilitado por padrão. Para usar esta função, você deve instalar e habilitar o suplemento Solver. Para saber mais sobre como fazer isso, consulte Usando as funções VBA do Solver. Após a instalação do suplemento Solver, você deverá estabelecer uma referência para o suplemento Solver. No Editor do Visual Basic, com um módulo ativo, clique em Referências, no menu Ferramentas e clique em Solucionador nas Referências disponíveis. Se o Solver não aparecer em Referências Disponíveis, clique em Procurar e então abra Solver.xlam na subpasta \Arquivos de Programas\Microsoft Office\Office14\Biblioteca\SOLVER.

SolverAdd( CellRef, Relation, FormulaText)

CellRef exige variante. Uma referência a uma célula ou a um intervalo de células que forma o lado esquerdo de uma restrição. Relação exige inteiro. A relação aritmética entre os lados esquerdo e direito da restrição. Se você escolher 4, 5 ou 6, CellRef deverá se referir a células variáveis de decisão e FormulaText não deve ser especificado.

Relation Relacionamento aritmético
1 <=
2 =
3 >=
4 As células referenciadas por CellRef devem ter valores finais que são inteiros.
5 As células referenciadas pelo CellRef devem ter valores finais de 0 (zero) ou 1.
6 As células referenciadas pelo CellRef devem ter valores finais diferentes e inteiros.

FormulaText Variante opcional. O lado direito da restrição.

Comentários

Depois que as restrições forem adicionadas, você poderá manipulá-las com as funções SolverChange e SolverDelete .

Exemplo

Este exemplo usa as funções do Solver para maximizar o lucro bruto em um problema de negócios. A função SolverAdd é usada para adicionar três restrições ao problema atual.

Worksheets("Sheet1").Activate 
SolverReset 
SolverOptions precision:=0.001 
SolverOK setCell:=Range("TotalProfit"), _ 
 maxMinVal:=1, _ 
 byChange:=Range("C4:E6") 
SolverAdd cellRef:=Range("F4:F6"), _ 
 relation:=1, _ 
 formulaText:=100 
SolverAdd cellRef:=Range("C4:E6"), _ 
 relation:=3, _ 
 formulaText:=0 
SolverAdd cellRef:=Range("C4:E6"), _ 
 relation:=4 
SolverSolve userFinish:=False 
SolverSave saveArea:=Range("A33")

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.