VBA Excel-基于其他单元格值更新单元格值

VBA Excel-基于其他单元格值更新单元格值,vba,excel,Vba,Excel,我试图根据另一工作表中的其他区域单元格值,在一个区域单元格中编写一个公式。公式如下所示: ActiveSheet.Range("G14:G43").Formula = "=Worksheets("1ºperíodo").Range("V14:V43").Value" 但是代码不起作用,我得到一个语法错误。这一定和字符串有关,但我不知道如何修复它。 在最后一个单元格之前,V14处的值必须等于G14处的值,即,G14处的值等于V43处的值。除了语法错误之外,根据我的预期,公式正确吗 ”=工作表(“

我试图根据另一工作表中的其他区域单元格值,在一个区域单元格中编写一个公式。公式如下所示:

ActiveSheet.Range("G14:G43").Formula = "=Worksheets("1ºperíodo").Range("V14:V43").Value"
但是代码不起作用,我得到一个语法错误。这一定和字符串有关,但我不知道如何修复它。 在最后一个单元格之前,
V14
处的值必须等于
G14
处的值,即,
G14
处的值等于
V43
处的值。除了语法错误之外,根据我的预期,公式正确吗

”=工作表(“1ºperíodo”).范围(“V14:V43”).值“

这不是一个公式。这是一种价值

如果只需要静态值,则只需分配值:

ActiveSheet.Range("G14:G43").Value = Worksheets("1ºperíodo").Range("V14:V43").Value
如果需要live公式,则需要从字符串中提取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将对每一行进行更改

”=工作表(“1ºperíodo”).范围(“V14:V43”).值“

这不是一个公式。这是一种价值

如果只需要静态值,则只需分配值:

ActiveSheet.Range("G14:G43").Value = Worksheets("1ºperíodo").Range("V14:V43").Value
如果需要live公式,则需要从字符串中提取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将对每一行进行更改。

尝试以下操作:
=工作表(““1ºperíodo”)”。范围(““V14:V43”)。值“
,假设工作表名称正确且没有输入错误。(在公式中,你需要在引号上加两倍。否则VBA会认为你在
.Formula
语句的末尾。)@BruceWayne我想你在第一个括号的末尾有一个拼写错误Bruce,应该是
“”)
@BruceWayne我用它得到了一个运行时错误“1004”。我以前已经试过了。哦,很抱歉输入错误-很好的捕获@dwirony。试试
…Formula=“=工作表(““1ºperíodo”)。范围(““V14:V43”)。值“
。你能确认工作表的名称是
1ºperíodo
?(没有空格,有重音的
i
,还有学位符号)?还有,你到底得到了什么错误?最后,你想做什么?你正在使用
.Formula
设置
?这不是一个公式。你的意思可能是
…Formula=“=工作表(“1ºperíodo”)。范围(“V14”)。值“
?澄清您试图执行的操作将大有帮助。@BruceWayne是的,工作表名称正是该名称。“应用程序定义或对象定义错误”。我希望G14单元格包含公式=V14,直到到达G43单元格=V43为止。请尝试以下操作:
=工作表(““1ºperíodo”)。范围(““V14:V43”)。值“
,假设工作表名称正确无误。(在公式中,您需要在引号上加倍。否则VBA会认为您在
.Formula
语句的末尾。)@BruceWayne我认为您在第一个括号的末尾有一个拼写错误Bruce,应该是
”)
@BruceWayne我使用它得到一个运行时错误“1004”。我以前已经试过了。哦,很抱歉我的打字错误-很好,很讽刺。请尝试
…Formula=“=工作表(““1ºperíodo”)。范围(““V14:V43”)。值“
。OP您能否确认工作表名称的字面意思是
1ºperíodo
?(没有空格,带有重音符号
i
,以及学位符号)?另外,您得到的确切错误是什么?最后,你想做什么?您正在使用
.Formula
设置
?这不是一个公式。你的意思可能是
…Formula=“=工作表(““1ºperíodo”)。范围(““V14”)。值“
?明确你要做的事情将大有帮助。@BruceWayne是的,工作表的名称正是这个应用程序定义或对象定义错误'。我希望G14单元格包含公式=V14,直到到达G43单元格=V43为止。@PedroR。请单击答案旁的复选标记,将其标记为正确。@PedroR。请点击答案旁边的复选标记,将其标记为正确。