2017-05-05 69 views
2

我试图将公式复制并粘贴到一定范围的单元格中。我拥有的公式(如下所示)需要根据源工作簿中的单元格内容进行更新。在某些上下文中,下面的宏所在的excel文件由源工作簿(源单元格内容所在的位置)的宏打开。基于单元值的更新文件路径

在这种情况下,源单元格将更新'May2017'。

Sub PullPUProj() 

Range("D18:D104").Formula = "=IFERROR(OFFSET('[Athens_OperatingProjection_May2017.xlsx]Budget Detail'!$A$7,MATCH($A16,'[Athens_OperatingProjection_May2017.xlsx]Budget Detail'!$A$8:$A$284,0),MATCH('[Athens_OperatingProjection_May2017.xlsx]Budget Detail'!$BK$7,'[Athens_OperatingProjection_May2017.xlsx]Budget Detail'!$B$7:$CP$7,0)),0)" 

End Sub 

任何帮助或引用将不胜感激!

回答

1

比方说,单元A1有你想用来代替“May2017”的文本。您可以通过关闭""并添加& [variable] & "来重新打开它。

Range("D18:D104").Formula = "=IFERROR(OFFSET('[Athens_OperatingProjection_" & A1 & ".xlsx]Budget Detail'!$A$7,MATCH($A16,'[Athens_OperatingProjection_" & A1 & ".xlsx]Budget Detail'!$A$8:$A$284,0),MATCH('[Athens_OperatingProjection_" & A1 & ".xlsx]Budget Detail'!$BK$7,'[Athens_OperatingProjection_" & A1 & ".xlsx]Budget Detail'!$B$7:$CP$7,0)),0)" 

注意:您可能需要让A1参考绝对,如果你想拖动该公式,但保持参照A1,(所以$A$1)。

+0

它结束了只是缩短了文件提到“Athens_OperatingProjection_.xlsx” –

+0

啊,哎呦......我忘了'范围(“A1”)'@JuanSebastianMedina – BruceWayne

+0

@BruceWayne你构建的方式,它需要间接功能。 – sktneer

1

假设单元格A1有字符串,那么你可能会试试这个...

Range("D18:D104").Formula = "=IFERROR(OFFSET('[Athens_OperatingProjection_" & Range("A1").Value & ".xlsx]Budget Detail'!$A$7,MATCH($A16,'[Athens_OperatingProjection_" & Range("A1").Value & ".xlsx]Budget Detail'!$A$8:$A$284,0),MATCH('[Athens_OperatingProjection_" & Range("A1").Value & ".xlsx]Budget Detail'!$BK$7,'[Athens_OperatingProjection_" & Range("A1").Value & ".xlsx]Budget Detail'!$B$7:$CP$7,0)),0)" 
+0

D'oh!我忘了放置Range(“A1”)。这应该为OP做。 – BruceWayne

0

到他人如何建议类似,但有两个变化。 1)不是直接在公式中引用Cell,而是在其外部定义您想要的内容。这样,如果你决定从单元格A1中移动它,你只需要更新一个部分。 2)还包括表单名称。如果宏可以从其他工作表执行,它可能会产生一个意外的错误,因为它不会找到它所需要的。

Month = Sheets("Budget Detail").Range("A1") 

Range("D18:D104").Formula = "=IFERROR(OFFSET('[Athens_OperatingProjection_" & Month & ".xlsx]Budget Detail'!$A$7,MATCH($A16,'[Athens_OperatingProjection_" & Month & ".xlsx]Budget Detail'!$A$8:$A$284,0),MATCH('[Athens_OperatingProjection_" & Month & ".xlsx]Budget Detail'!$BK$7,'[Athens_OperatingProjection_" & Month & ".xlsx]Budget Detail'!$B$7:$CP$7,0)),0)"