我正在尝试根据另一个工作表中的其他范围单元格值在单元格区域中编写公式。公式如下所示:
ActiveSheet.Range("G14:G43").Formula = "=Worksheets("1ºperíodo").Range("V14:V43").Value"
但代码不起作用,我收到语法错误。这必须与字符串相关,但我不知道如何解决它。
V14
处的值必须等于G14
处的值,直到最后一个单元格,即G14
处的值等于V43
处的值。除了语法错误之外,根据我的预期,公式是否正确?
答案 0 :(得分:2)
"=Worksheets("1ºperíodo").Range("V14:V43").Value"
不是公式。这是一个价值。
如果您只想要静态值,则只需指定值:
ActiveSheet.Range("G14:G43").Value = Worksheets("1ºperíodo").Range("V14:V43").Value
如果你想要一个实时公式,你需要从字符串中提取vba并使用.Address函数:
ActiveSheet.Range("G14:G43").Formula = "=" & Worksheets("1ºperíodo").Range("V14").Address(0,0,,1)
但上述内容可以简化为:
ActiveSheet.Range("G14:G43").Formula = "='1ºperíodo'!V14"
使用公式,我们只需要引用带有相对引用的第一个单元格,vba将对每一行进行更改。