2016-04-15 5 views
-1
Function Obj_Fnc_Colmn(IN1 As Range, OP1 As Range) 
Application.Run "Solver.xlam!Auto_Open" 
SolverReset 
X_var = IN1.Address 
Y_var = OP1.Address 
MsgBox X_var 
SolverOK SetCell:=Y_var, MaxMinVal:=3, ValueOf:="0", ByChange:=X_var 
SolverAdd CellRef:=X_var, Relation:=3, FormulaText:="0" 

SolverSolve UserFinish:=False 
End Function 

Intention des Programms ist die Eingabe verschiedener Ziele, Variablen in mehreren Spalten ändern.Excel Solver-Funktion in einer Spalte mit Eingabevariablen ausgeführt

Bitte gehen Sie meinen Code durch. Fehler weiterhin generieren Das gleiche Programm möchte für mehrere Spalten verwenden.

+0

Ich glaube, das Problem ist "Solver.xlam! Auto_Open". Wenn Sie sicherstellen möchten, dass das Solver-Add-In aktiviert und über VBA erreichbar ist, verwenden Sie den folgenden Code: [Solver für die erste Verwendung vorbereiten] (http://peltiertech.com/Excel/SolverVBA.html#Solver3). HTH – kindoflost

+0

Ich habe versucht, was Sie vorgeschlagen, aber nicht funktioniert. Gibt es eine Option? –

+0

wo bricht es? versuche, diese Zeile zu kommentieren und zu sehen, was passiert. – kindoflost

Antwort

0

Basierend auf this, würde ich die folgenden Unter verwenden (ich habe Test es, ja, es funktioniert auch ohne die Application.Run Linie) ...

Option Explicit 
Sub Obj_Fnc_Colmn() 
Dim IN1 As Range, OP1 As Range 
Dim X_Var As String, Y_Var As String 

    Set IN1 = Sheets("Sheet1").Cells(2, 4) 
    Set OP1 = Sheets("Sheet1").Cells(2, 5) 

    X_Var = Split(IN1.Address(external:=True), "[")(0) & Split(IN1.Address(external:=True), "]")(1) 
    Y_Var = Split(OP1.Address(external:=True), "[")(0) & Split(OP1.Address(external:=True), "]")(1) 

    SolverOK SetCell:=Y_Var, MaxMinVal:=3, ValueOf:=0, ByChange:=X_Var, Engine:=1 
    SolverAdd CellRef:=X_Var, Relation:=3, FormulaText:=0 
    SolverSolve UserFinish:=True 

End Sub 

Dinge zu beachten: Es verwendet SolverReset nicht. Die für SetCell, ByChange und CellRef verwendeten Zeichenfolgen enthalten die Sheet-Referenz (nicht unbedingt erforderlich, helfen jedoch, Probleme zu vermeiden). ValueOf und FormulaText sind NICHT Text, sondern Zahlen.

Verwandte Themen