24. september 2019 - 09:56
Der er
3 kommentarer
Excel Solver - makro vba
Solver udfyldes via en makro. Det er ByChange feltet jeg har udfordringer med. Jeg har en String (optimal) med f6;f7;f16;f18 (som jeg kan ændre efter behov)
Hvordan kalder jeg String'en i ByChange?
SolverOk SetCell:="portafkast", MaxMinVal:=1, ValueOf:="0", ByChange:="optimal", Engine:=1, EngineDesc:="GRG Nonlinear"
eller
SolverOk SetCell:="portafkast", MaxMinVal:=1, ValueOf:="0", ByChange:=optimal, Engine:=1, EngineDesc:="GRG Nonlinear"
virker ikke
Den bør forstå den som følgende - og som virker.
SolverOk SetCell:="portafkast", MaxMinVal:=1, ValueOf:="0", ByChange:="f6;f7;f16;F18", Engine:=1, EngineDesc:="GRG Nonlinear"
Til info så er portafkast en celle som er navngivet, hvilket virker fint
M.O
Seniormester
26. september 2019 - 16:13
#1
Et forsigtig bud er der skal bruges range istedet for string
Sub Eksempel()
Dim optimal As Range
Set optimal = Range("f6:f7,f16:F18 ")
optimal.Value = 55
End Sub
12. januar 2020 - 20:50
#2
Nogen der har et bud? Mangler stadig en løsning :-)
#1 hvorfor optimal.Value = 55?
Og jeg tror mere det er hvordan jeg 'kalder' Optimal. Optimal indeholder jo det jeg skal bruge.
(jeg er slet ikke pr, så det er muligt jeg misforstår noget :-))
M.O
Seniormester
27. januar 2020 - 08:21
#3
Sub Eksempel()
Dim portafkast As Range
Dim optimal As Range
Set portafkast = Range("a1")
Set optimal = Range("f6:f7,f16:f18") ' muligvis "f16,f18"
optimal.Value = portafkast
End Sub
Koden her ville være det samme som hvis formlen =a1 blev sat i f6,f7,f16 og f18
Så jeg har sikkert ikke forstået det helt endnu.
Håber der dukker en ekspert op der kan hjælpe dig i mål med det.