在excel宏上工作,我试图从上面的单元格中添加单元格值来计算总值。这就是我的数据
这里我想为每列添加上面的单元格值来计算总和。为了实现这一点,我写了一个宏如下。
For cl = 2 To 5
Worksheets(5).Cells(4, cl).Formula = "=SUM(B4:B6)"
Next cl
这应该将公式设置为一行中的每个单元格直到5列。 但它在一行中的所有单元格上设置相同的公式,它应根据列进行更改。如何为相应的列设置每个单元格的总和公式?
答案 0 :(得分:9)
不确定我是否完全理解您的代码。您似乎正在写入第4行,但您还希望从第4行到第6行求和。这将创建一个循环引用。
让我们假设公式被写入第3行。您将需要使用R1C1引用样式使单元格相对于当前单元格求和。
了解使用的参考资料的技巧是:
=SUM(B4:B6)
并复制到右侧。=SUM(R[1]C:R[3]C)
这是您在宏中所需要的。
For cl = 2 To 5
Worksheets(5).Cells(3, cl).FormulaR1C1 = "=SUM(R[1]C:R[3]C)"
Next cl
答案 1 :(得分:1)
对于您的情况,您可以使用以下方法:
For cl = 2 To 5
ColName = Left(Cells(1, cl).Address(0, 0), (Cells(1, cl).Column < 27) + 2)
ValueSum = "=SUM(" & ColName & "4:" & ColName & "6)"
Worksheets(5).Cells(4, cl).Formula = ValueSum
Next
答案 2 :(得分:0)
尝试这样的事情。
For cl = 2 To 5
ColName = Left(Cells(1, cl).Address(False, False), 1 - (cl > 26))
Worksheets(5).Cells(4, cl).Formula = "=SUM(" & ColName & "4:" & ColName & "6)"
Next cl
答案 3 :(得分:0)
公式中R1C1和R [1] C [1]样式的更多细节。 据我所知,R [1] C [1]创建一个相对引用,R1C1创建一个绝对引用。但请记住,R [x]和C [y]的数字是包含公式的单元格的偏移量。
这意味着如果你想在C5中显示A1:B4的总和,代码必须是这样的:
Worksheets(5).Cells(5, 3).FormulaR1C1 = "=SUM(R[-4]C[-2]:R[-1]C[-1])"
如果你想要相同但最终得到一个绝对的参考是看起来像这样。
Worksheets(5).Cells(5, 3).FormulaR1C1 = "=SUM(R1C1:R4C2)"
答案 4 :(得分:0)
您可以使用如下所示的非常简单的公式:
fig = plt.figure()
ax = plt.axes()
ax.plot(y, 'o', color='black')
ax.plot(y_hat, 'o', color='blue')
plt.show()
接下来,只需按住并拖动单元格即可自动填充另一行。
答案 5 :(得分:0)
我认为您可以引用整个公式范围,而Excel将足够聪明地调整列。
无循环:
Worksheets(5).Cells(4,cl).resize(1,4).Formula =“ = SUM(B4:B6)”