Vba Excel:复制公式时复制相对引用中内置更改的函数
我需要一个函数,将做什么Excel做时,你自动提取公式:改变引用自动 例如: 在A1中,我有“=A2+A3” 如果我复制这个来表示C3,它将有:“=C4+C5” 我需要在C3中写一个公式来产生这个 有什么想法吗?VBA解决方案也很受欢迎 澄清: 这需要尽可能的概括。 这意味着A1可以包含任何类型的公式,包含对其他单元格的引用。 例如:“=A2+A3”或“=VLOOKUP(A2,$C$1:$E$7,2,True)” 需要移动时,将此公式(无论它是什么)复制到另一个单元格(例如C3),不使用内置的复制/粘贴,并使引用(未设置$)相对更改 我想可能需要在目标文件中编写一个函数来实现这一点Vba Excel:复制公式时复制相对引用中内置更改的函数,vba,excel,Vba,Excel,我需要一个函数,将做什么Excel做时,你自动提取公式:改变引用自动 例如: 在A1中,我有“=A2+A3” 如果我复制这个来表示C3,它将有:“=C4+C5” 我需要在C3中写一个公式来产生这个 有什么想法吗?VBA解决方案也很受欢迎 澄清: 这需要尽可能的概括。 这意味着A1可以包含任何类型的公式,包含对其他单元格的引用。 例如:“=A2+A3”或“=VLOOKUP(A2,$C$1:$E$7,2,True)” 需要移动时,将此公式(无论它是什么)复制到另一个单元格(例如C3),不使用内置的复
我曾尝试编写一个求值函数,我成功地从A1复制了公式,并在C3中对其进行了求值,但引用不会改变这个问题有点不清楚,但我认为这可能是您想要的:
=SUM(OFFSET(C3,1,0,2))
这将对给定单元格正下方的两个单元格求和(在本例中为单元格
C3
)。也就是说,它将C3
偏移1行0列,并获取2个单元格的高度,然后将结果传递给SUM函数。此VBA代码将通过在活动单元格中设置公式来完成您正在查看的操作:
ActiveCell.FormulaR1C1 = "=R[+1]C+R[+2]C"
可以使用相对引用样式使用
Indirect()
函数
例如,如果您在A1中,并希望对B1和C1求和,则如下所示:
A1: =INDIRECT("RC[1]",0)+INDIRECT("RC[2]",0)
=INDIRECT("R[1]C",0)+INDIRECT("R[2]C",0)
这将随着移动单元格而改变,以始终将单元格左侧的两个单元格相加
对于您的具体示例(A1=A2+A3 | | C3=C4+C5),它将如下所示:
A1: =INDIRECT("RC[1]",0)+INDIRECT("RC[2]",0)
=INDIRECT("R[1]C",0)+INDIRECT("R[2]C",0)
希望能成功 你什么意思?这个公式需要做什么?我补充了一些澄清,谢谢你。如果你的问题得到了回答,请记住选择一个答案作为你的解决方案。它会让其他有同样问题的人知道什么对你有效…很高兴它有效-如果你的问题得到了回答,记得选择一个答案作为你的解决方案。它会让其他有同样问题的人知道什么对你有用