Pregunta

Estoy tratando de agregar algunas nuevas limitaciones a mi solución de solucionador de Excel VBA y estoy obteniendo un comportamiento extraño cuando ejecuto el código. Quiero hacer lo siguiente para un problema de minimización y tengo algunos problemas:

Las dos palancas que se están ajustando deben ser <= 35%, sin embargo, cuando agrego la restricción:

SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"

Se establecen automáticamente al 35% cuando la idea es que estos sean lo más bajos posible. Sin esta restricción, las celdas se establecen por debajo del 35% para los problemas con los que estoy valido, por lo que sé que la solución óptima está por debajo del 35%.

También me preguntaba si hay una manera de asegurarme de que a) las células estén optimizadas en incrementos del 5%, y que el valor final no incluya decimales. es decir, 10.00% en lugar de 10.23%

Perdón por la larga pregunta, agradezco cualquier ayuda que obtenga.

Aquí está el código completo:

    Private Sub CommandButton2_Click()

Dim i As Integer


i = 2

For i = 2 To 5

   Range("$C$14").Value = Application.Workbooks("test_model_2.xls").Worksheets("All Models").Cells(i, 2).Value
    SolverReset
    SolverAdd CellRef:="$F$70", Relation:=3, FormulaText:="5000"
    SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
    SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"
    SolverOk SetCell:="$F$70", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$39:$C$40"
    SolverSolve True
   MsgBox "i is:" & i

Next i

End Sub
¿Fue útil?

Solución

Ver: http://msdn.microsoft.com/en-us/library/aa272233(v=office.10).aspx

Estás usando la relación: = 2, que equivale a "=". Deberías estar usando 1 (<=)

En cuanto a obtener su solución al 0.05 más cercano, simplemente configure algunas otras celdas que alimenten las células "porcentuales" y las limiten a los valores enteros.

P.ej:

A1 = 7           (set solver to change this, and constrain to integer)
B1 = A1 * 0.05   (your percent cell, constrain to <=0.35)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top