【发布时间】:2018-01-20 21:59:31
【问题描述】:
我正在尝试解决一个问题,该问题要求使用公式 (constant$ = current$/(CPI-U*0.01)) 将当前美元金额转换为恒定美元金额。
我想先使用 excel vba 循环遍历列中的每个单元格,然后在到达列底部没有数据的单元格后移至下一列(使用偏移量?)。该循环不包括第一列或最后一列(年份和 CPIU),并且每次迭代都将当前单元格美元值输入到公式中,并用更新的恒定美元值替换当前单元格美元值(不将其放入不同的表中) .
例如,如果 B2 的单元格值为 11116,而对应的年份 CPIU 为 41.8,则将 11116 输入到函数 =QUOTIENT(11116, PRODUCT(41.8,0.01))。将单元格 B2 中的 11116 替换为 26593。
我还希望每次循环迭代时更新 CPIU 单元格引用。例如,CPIU 在“F”列中,因此如果其单元格 B2 则应选择 F2,C3 到 F3 等等。
这是针对以下excel函数示例:
ActiveCell.Formula = "=QUOTIENT(B2,PRODUCT(F2,0.01))"
*B2 将被替换为循环迭代器,但仍试图弄清楚如何在每次迭代时更新 F 列
这是表格: Data Table *范围 A1:F17(包括标题)
这是 vba 过程循环的开始:
Public Sub LoopThroughAllTableCells()
Dim convertedValue As Long
For Each c In Worksheets("Sheet1").Range("B2:E17").Cells
Next
End Sub
*不确定当前循环是否是遍历 1 列中每个单元格然后移至下一列的正确方法。
为这篇冗长的帖子道歉,但无法将各个部分拼凑在一起。任何帮助将非常感激!
【问题讨论】:
-
循环列直到没有数据的最佳方法是使用循环。类似
Do until ActiveCell.Value="" 'your code to whatever Activecell.Offset (1,0).Select Loop