且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

VBA Excel求解器代码 - 按列循环

更新时间:2023-10-12 23:09:34

您可以使用Range对象的Address属性循环遍历所有300列。

You can use the Address property of the Range object to loop through all 300 columns.

首先,您需要3个变量来保存SetCell,ValueOf和ByChange的位置。

First you need 3 variables to hold locations of SetCell, ValueOf, and ByChange.

Dim setCellRange as Range, valueOfRange as Range, byChangeRange as Range

Set setCellRange = ActiveSheet.Range("B20")
Set valueOfRange = ActiveSheet.Range("B3")
Set byChangeRange = ActiveSheet.Range("B28")

然后,您可以使用以下循环遍历每一列。

Then you can use the following loop to iterate through each column.

Dim i as Long

For i = 1 to 300

  SolverReset

  SolverOk SetCell:=setCellRange.Address, MaxMinVal:=3, ValueOf:=valueOfRange.Address, ByChange:=byChangeRange.Address, _
    Engine:=1, EngineDesc:="GRG Nonlinear"


  SolverSolve

  Set setCellRange = setCellRange.Cells(1, 2)
  Set valueOfRange = valueOfRange.Cells(1, 2)
  Set byChangeRange = byChangeRange.Cells(1, 2)

Next i

希望这有帮助!