Tag: 约束

在variables上设置数字约束

在VBA中创buildvariables时是否有办法限制? 例如: 暗淡的阿尔法作为整数 现在我想让Excel 只接受从0到99的值 ,我该怎么做? 非常感谢

不连续求解器约束解决方法

我正在开发一个在Excel中使用OpenSolver的生产模拟。 我知道我不能使用if,或者和statements来约束求解器。 我需要一个约束,说: X必须在150-250的范围内,否则X可以等于0。 我已经阅读了不同的方式来替代条件公式的二进制约束,但我不知道如何使它完全工作。 任何帮助是极大的赞赏。

在委托,事件,处理程序,在F#

如果我看看Control.IEvent <'Delegate,'Args> ,它强加于'Args IEvent<'Delegate,'Args when 'Delegate : delegate<'Args,unit>…> 查看WorkbookBase.NewSheet事件 ,types为obj-> unit WorkbookEvents_NewSheetEventHandler可以订阅,我会期望'Args在F#types中, 'Args的types为obj 。 但是,我看到事件NewSheet是IEvent<WorkbookEvents_NewSheetEventHandler, unit>typesIEvent<WorkbookEvents_NewSheetEventHandler, unit> 什么可以解释这个? 添加答案中提到的规格摘录: 5.2.8 委托约束一个显式的委托约束具有如下forms: typar:代表 在约束求解(§14.5)期间,约束types:如果types是委托typesD,则声明typesD = 对象委托* arg1 * … * argN和tupled-arg-type = arg1 * … * argN。 也就是说,委托必须匹配发送者对象是事件的第一个参数的CLIdevise模式。 注意:这个约束表单的存在主要是为了定义某些与事件编程相关的F#库函数。 它很less直接在F#编程中使用。 委托约束并不意味着任何有关子types。 特别是,“委托”约束并不意味着该types是System.Delegate的子types。 委托约束仅适用于遵循CLI事件处理程序通常forms的委托types,其中第一个参数是“发件人”对象。 原因是这个约束的目的是简化CLI事件处理程序到F#程序员的表示。

Excel求解器忽略VBA中的约束

我正在尝试使用Solverfind一个简单投资组合的最大回报。 在工作表中使用Solver直接工作,但在VBA中设置命令时不会。 相反(正如你可以从screengrab看到的那样)忽略了其中一个约束(在T10中计算的权重总和应该等于1)。 有趣的是,如果我改变第三行来说: SolverAdd CellRef:="$T$10", Relation:=2, FormulaText:="100" 或“1”以外的其他整数。 (也可能忽略其他约束,但我不能检查这个)。 表格看起来像这样: 而我的代码是: Sub FindRange() SolverReset SolverOk SetCell:="$T$7", MaxMinVal:=1, ValueOf:="0", ByChange:="$O$10:$R$10" SolverAdd CellRef:="$T$10", Relation:=2, FormulaText:="1" SolverAdd CellRef:="$O$10:$R$10", Relation:=3, FormulaText:="0" SolverSolve UserFinish:=True SolverFinish KeepFinal:=1 Range("T9").Value = Range("T7").Value End Sub 任何build议感激地欢迎!

如果没有find值,Excel min值大于x将返回0

我使用下面的公式:= MIN(IF(A1:A5> B1,A1:A5))使用Ctrl-Shift-Enter我的B1值是10,我的数组是{1,5,4,2,7}所以在这种情况下,没有值大于10.问题是,由于0是不大于10的问题是,由于空集是一个问题,excel返回0。在这种情况下,我可以testing结果0是否更大然后看到结果是无效的,但是,如果对于{-15,-24,-11,-37-60}数组,B1是-10,那么当没有正确的值时,0似乎是一个有效值。 因此,任何人都知道如何find具有约束的集合的最小或最大值,但是如果解集合为空,则返回一个错误或不同的东西。 谢谢。