在VBA中使用多个while循环

我想问你如何使用多个做,或者如果有另一种方式如何自动化这种types的计算。 我有收盘价的股票名为封闭的工作表。 在另一张名为“退货”的表上,我想计算退货。 我不知道有多less行和列将被closures。 所以我写了第一栏的macros。

Sub CalcReturns() ' CalcReturns Dim row As Integer Worksheets("Returns").Activate row = 3 Do While Cells(row, 1) <> "" Cells(row, 2).Value = Worksheets("Close").Cells(row, 2).Value / _ Worksheets("Close").Cells(row - 1, 2).Value - 1 row = row + 1 Loop End Sub 

我的问题是如何添加第二个循环做上面的计算,只要数据在第一行的列中。 我试图学习使用循环,但我能够做到一个,而不是多个预先感谢!

你可以嵌套do循环:

 Do while firstCondition Do while secondCondition Loop Loop 

我不知道这是你想做什么,但你可以添加一个嵌套的循环到你的代码如下:

 Sub CalcReturns() ' CalcReturns Dim row As Integer Worksheets("Returns").Activate row = 3 'first loop Do While Cells(row, 1) <> "" col = 2 'second loop Do While Cells(row,col)<>"" Cells(row, col).Value = Worksheets("Close").Cells(row, col).Value / _ Worksheets("Close").Cells(row - 1, col).Value - 1 col = col+1 Loop row = row + 1 Loop End Sub 
 Sub CalcReturns() ' CalcReturns Dim row As Integer Worksheets("Returns").Activate row = 3 do until isempty(cells(row,1)) col = 2 do until isempty(cells(row,col)) Cells(row, col).Value = Worksheets("Close").Cells(row, col).Value / _ Worksheets("Close").Cells(row - 1, col).Value - 1 col = col+1 Loop row = row + 1 Loop End Sub