arrays - vba将公式复制到多个单元格

标签 arrays excel formula

我知道使用“.PasteSpecial xlPasteFormulas”或“range.AutoFill”的方法,但我试图找到一种使用数组变量的方法。

我想将范围 C4:D4 中的公式复制到具有多个范围的范围 C7:D11 中。

C4 = A4+B4
D4 = Average(A4:C4)

所以我做了一个这样的vba脚本。
Sub test()
Dim  v
v = Range("C4:D4").FormulaR1C1
Range("C7:D11").FormulaR1C1 = v
End Sub

运行 vba 后,c7 和 d7 中的公式和我预期的一样。
c7 = a7 + b7
d7 = average(A7:C7)

但是其他单元格的公式很奇怪
c8 = a9 + b9
d8 = average(A9:C9)
c9 = a11 + b11
d9 = average(A11:C11)

等等.....

我的问题是:
1. 为什么会这样?
2. 关于通过使用数组变量的方式将一些公式复制到多个范围的方法有什么建议吗?

先感谢您。

最佳答案

看来您在 Excel 中发现了一个错误。的VBA .另一方面,如果我们正在阅读 Range.FormulaR1C1 property (Excel)在挑剔模式然后在

Setting the formula of a multiple-cell range fills all cells in the range with the formula.



“公式”也可以读作“ 一个 公式”。从来没有人告诉过我们可以设置多个单元格区域的多个公式。

因此,唯一的方法似乎是分两部分进行:
Sub test()
 Dim v As Variant
 v = Range("C4").FormulaR1C1
 Range("C7:C11").FormulaR1C1 = v
 v = Range("D4").FormulaR1C1
 Range("D7:D11").FormulaR1C1 = v
End Sub

这仍然应该比通过剪贴板使用复制/粘贴或使用循环设置公式更快。

关于arrays - vba将公式复制到多个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53992878/

相关文章:

c++ - 如何对数组中的字符串进行排序 C++

Javascript/JQuery 来制作我定义的所有 DOM 元素的多维数组?

具有连接的 Excel 公式

iphone - 使用 Quartz 2d 绘制公式

Excel从固定单元格引用到列末尾?

Javascript复制对象数组中的嵌套数组

vba - 将突出显示的绿色复制到另一个工作表

excel - 在 Excel 报告中分析对最终用户不起作用

excel - 考虑条件生成随机时间

arrays - 仅在 freemarker 中创建 "object"(无 JAVA 等)?