1

我有一组方程,我想重复这些方程,从下一行向下为每个变量所在的每一列取变量。我是初学者,所以我的编码可能不会从头开始:

Sub Iteration()

Dim al, ab, ae As Double
Dim as1, as2 As Double 
'etc

as1 = Range("CG7")
as2 = Range("CG8")
aA1 = Range("BQ7")
'etc

intCounter = 0
For intCounter = 1 To 10000

  Let x = ((aN1 * 1000) - (as1 * aA1) + (as2 * aA2)) / (al * fc * ae * ab)

  Let x2 = ((aN12 * 1000) - (as12 * aA12) + (as22 * aA22)) / (al2 * fc2 * ae2 * ab2)

Next

 Sheets("Sheet1").Range("CJ7").Value = x

End Sub

我已经为几个变量完成了此操作,这些变量已设置为相对于每个变量值的范围。然后对于下一行,我不得不重做整个方程并再次为下一行设置变量。有什么方法可以设置变量(可能带有相对单元格引用?),这些变量将跳到下一行中的单元格进行下一次计算?还要考虑有 36 行用于计算和大约 9 个变量!

4

1 回答 1

0

如果我理解正确的话,这样的事情怎么样:

Sub Iteration()

Dim al, ab, ae As Double
Dim as1, as2 As Double 
'etc

intCounter = 0
For intCounter = 0 To 10000

    as1 = Range("CG7").Offset(intCounter)
    as2 = Range("CG8").Offset(intCounter)
    aA1 = Range("BQ7").Offset(intCounter)
   'etc

  Let x = ((aN1 * 1000) - (as1 * aA1) + (as2 * aA2)) / (al * fc * ae * ab)

  Let x2 = ((aN12 * 1000) - (as12 * aA12) + (as22 * aA22)) / (al2 * fc2 * ae2 * ab2)

Next

 Sheets("Sheet1").Range("CJ7").Value = x

End Sub
于 2012-10-23T19:06:43.260 回答