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.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de