Domanda

Sto cercando di aggiungere alcuni nuovi vincoli per la mia soluzione risolutore di Excel VBA e sto ottenendo un po 'strano comportamento quando si esegue il codice. Voglio fare quanto segue per un problema di minimizzazione e sto avendo qualche problema:

Le due leve che vengono regolate deve essere <= 35%, tuttavia quando aggiungo il vincolo:

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

Si automaticamente impostato al 35% quando l'idea è che questi siano il più basso possibile. Senza questo vincolo le cellule stesse impostano al di sotto del 35% per i problemi che sto convalida contro, quindi so che la soluzione ottimale è inferiore al 35%.

Inoltre mi chiedevo se esiste un modo per assicurarsi che a) le cellule sono ottimizzati in incrementi del 5%, e che il valore finale non include decimali. vale a dire 10,00% invece del 10.23%

Scusate per la domanda prolisso, Apprezzo tutto l'aiuto che ricevo.

Ecco il codice 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
È stato utile?

Soluzione

See: http://msdn.microsoft .com / it-it / library / aa272233 (v = office.10) aspx

Stai usando relazione: = 2, il che equivale a "=". Si deve usare 1 (<=)

Per quanto riguarda ottenere la soluzione al più vicino 0.05, appena istituito alcune altre cellule che alimentano nelle cellule "percentuale", e li hanno costretti a valori interi.

Esempio:

A1 = 7           (set solver to change this, and constrain to integer)
B1 = A1 * 0.05   (your percent cell, constrain to <=0.35)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top