首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环求解器

循环求解器
EN

Stack Overflow用户
提问于 2022-09-09 22:04:33
回答 2查看 55关注 0票数 0

在下面的代码中,我在循环"ma“从2到”n“时遇到了一些问题,其中"ma”是一个预设的数字,它等于工作表"Dados Brutos - A“中列的数目。当我尝试配置参数"ByChange“时,问题就会发生。我想在这里定义一个范围,从单元格列"na“(A、B、C等)到第6、7和8行。有人能帮我吗?我附上了一张指纹,以表明我的目标到底是什么。

编辑:

下面的代码解决了问题,多亏了АлексейР。希望这篇文章能帮助其他有同样问题的人。

代码语言:javascript
复制
Sub AjustarCurvas_A()
'
' Ajusta equações de segundo grau às amostras selecionadas
'

'
    Dim na As Integer, ma As Integer
    
    Sheets("Dados Brutos - A").Select
    na = Cells.Find(What:="*", SearchDirection:=xlPrevious).Column
    
    Sheets("Det. Ruído - A").Select
    
    With ActiveSheet
        For ma = 2 To na
            SolverOk SetCell:=.Cells(2, ma), MaxMinVal:=2, ValueOf:=0, ByChange:=.Cells(6, ma).Resize(3), _
                Engine:=1, EngineDesc:="GRG Nonlinear"
            SolverSolve (True)
        Next ma
   End With
End Sub

这是"Dados Brutos - A“和"Det. Ruído - A”

达多斯布鲁托斯-A 德特。Ruído A

我所做的就是数一数我在"Dados Brutos - A“上有多少列,并称这个数字为"na”。然后,我使用求解器("na“- 1)次数来改变单元上的值(B6:B9),并优化从它们在单元格B14上计算出来的值。然后(C6:C9)优化C14等等,直到我到达CN列,在这种特殊情况下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-10 16:17:30

任务还不完全清楚,但试图使代码可行。特别是,在代码中有两个工作表的名称,以及一个只有一个的屏幕快照。寻找解决方案的目标函数不清楚--细胞C5:C7与C8之间的关系是什么。添加调试消息Debug.Print ...以监视进度

代码语言:javascript
复制
Sub Macro1()
    Dim n As Integer, m As Integer
    
    ' the purpose of this piece of code is not clear
'    Sheets("Dados Brutos - A").Select
'    n = WorksheetFunction.CountA("B:B")
    
    n = 3 ' for example
    
    With ActiveWorkbook.Worksheets("A") ' "Det. Ruído - A" - my excel does not accept one of the characters
        For m = 2 To n
            Debug.Print "Trying to process range [" & .Cells(5, m).Resize(3).Address & "] to minimize value in cell " & .Cells(8, m).Address
            SolverReset

            SolverOk SetCell:=.Cells(8, m), MaxMinVal:=2, ByChange:=.Cells(5, m).Resize(3), _
                Engine:=1, EngineDesc:="GRG Nonlinear"
            SolverSolve
            
            ' not working - message window will be appear
            Application.DisplayAlerts = False
        Next m
    End With
End Sub

指纹:

代码语言:javascript
复制
Trying to process range [$B$5:$B$7] to minimize value in cell $B$8
Trying to process range [$C$5:$C$7] to minimize value in cell $C$8
票数 1
EN

Stack Overflow用户

发布于 2022-09-10 20:10:22

问题解决了。解决方案在问题中被详细描述为“编辑”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73667876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档