我必须计算2列(firstCol和lastCol)的值之间的差异,并在另一列(NextColumn)中设置这些差异。行计数一直在变化,所以在计算差异之前,我必须先计算rowCount。我试图用范围来编写一个循环,这样就可以计算出差异,但它似乎不起作用。
For i = 3 To lastRow
Range(Cells(3, NextColumn), Cells(lastRow, NextColumn)).FormulaR1C1 = "=Range(Cells(i, firstCol),Cells(i,firstCol)).Value - Range(Cells(i, lastCol),Cells(i,lastCol)).Value"
Next i任何帮助都将不胜感激!
谢谢你尼克
发布于 2017-09-27 17:10:17
对于公式中的"i“输入,您需要使用”&i&“在使用formula=时”“,例如:
"=A" & i & "+B" & i当您更改为不向单元格输入公式的公式(在VBA中进行数学计算)时,您可以忽略Excel格式和"“阻塞,例如:
= Cells(i,"A").Value +  Cells(i,"B").Value请确保在适当的地方使用循环变量,以便在循环中得到如下结果:
Dim i as Long
For i = 1 to 10
    Cells(i,"C").Formula = Cells(i,"A").Value + Cells(i,"B").Value
Next i发布于 2017-09-27 17:11:01
为什么要循环?除非我误解了这个问题,否则这样的事情应该能起作用:
Range("X3:X"& lastrow).Formula = "=C3-D3"公式会调整的。
发布于 2017-09-27 17:23:02
vba需要在引号之外,而不需要循环:
Range(Cells(3, NextColumn), Cells(lastRow, NextColumn)).Formula = "=" & Cells(3, firstCol).Address(0, 0) & "-" & Cells(3, lastCol).Address(0, 0)不需要循环。Excel将根据需要更改相关引用。
https://stackoverflow.com/questions/46453441
复制相似问题