我试图从单元格" B2"开始,放入一个公式,将单元格放在" B2"的左边,这是" A2" ,乘以另一张纸上的数字..
我的问题是......我如何引用左边的单元格?而且,我如何参考另一张纸上的单元格?我很确定这将是相同的答案,但我无法弄明白......
Sub RelFormula()
For Col = 1 To 2
For Row = 2 To 6
Cells(Row, Col).Formula = "=" & Cells.Offset(0, -1).Value & "*" worksheets("output").range("A1")
Next Row
Next Col
End Sub
答案 0 :(得分:2)
您不需要offset
,只能从Cells
的列参数中选择-1。您还错过了公式中使用的Cells
的行和列参数,最终&
,正如评论所指出的那样。
此外,使用关键字或保留字作为变量是一个非常糟糕的主意。有些名称受到保护,如果某些单词被用作变量名,VBA将无法编译/运行 - 但对于像" Row"这样的东西,它们在VBA的其他地方使用...它要求麻烦(即不推荐/不良做法等),并且会混淆读/调等等。
另外,请考虑在任何代码模块的顶部使用Option Explicit
(如果您还没有)。如果您没有定义所有变量,这将使VBA抱怨/停止。这对初学者来说可能是令人沮丧的 - 但从长远来看这是值得的。
我已经重写了你的代码,表面上,重命名和定义变量。从技术上讲,您不需要双(外部)循环(c_loop
只需要一个值):
Sub RelFormula()
Dim r_loop, c_loop As Integer
For c_loop = 2 To 2
For r_loop = 2 To 6
Cells(r_loop, c_loop).Formula = "=" & Cells(r_loop, c_loop - 1).Value _
& "*" & Worksheets("Sheet1").Range("A1").Value
Next r_loop
Next c_loop
End Sub