使用宏计算另一个工作表的数据

时间:2018-03-22 15:13:56

标签: excel vba excel-vba

我想知道是否有可能使用宏来执行求解器/如果分析功能在Excel专注于不同的工作表时会怎么样。
我为这两种方法设置了一个宏,当我当前在带有公式和数据的工作表上时它们正常工作但是当我切换到另一个工作表并执行宏时,它往往会遇到这些错误"错误438"对象不支持此属性或方法""和"运行时错误1004"。
我的代码目前看起来像这样:

Sub Solver_alpha()
Worksheets("Input Output").Activate
Worksheets("Input Output").Range ("$B$7:$B$6")
' Solver_alpha Macro
'
' Keyboard Shortcut: Ctrl+t
'
    SolverOk SetCell:="$B$7", MaxMinVal:=3, ValueOf:=0, ByChange:="$B$6", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$B$7", MaxMinVal:=3, ValueOf:=0, ByChange:="$B$6", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverSolve UserFinish:=True
End Sub

2 个答案:

答案 0 :(得分:0)

试试这个 - Worksheets("Input Output").Range ("$B$7:$B$6")应该总是抛出一个Run-time error 438,所以它需要有一些东西。

Sub Solver_alpha()
'Keyboard Shortcut: Ctrl+t
Worksheets("Input Output").Activate

With Worksheets("Input Output").Range("$B$7:$B$6")

    SolverOk SetCell:="$B$7", MaxMinVal:=3, ValueOf:=0, ByChange:="$B$6", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$B$7", MaxMinVal:=3, ValueOf:=0, ByChange:="$B$6", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverSolve UserFinish:=True

End With

End Sub 

答案 1 :(得分:0)

我最终根本没有使用VBA,只是将所有内容放在一张纸上以自动完成整个过程。 我建议你做同样的事情,因为几乎不可能做到这一点