gpt4 book ai didi

excel - 使用 VBA,您可以输入一个引用另一个具有动态名称的工作簿的公式吗?

转载 作者:行者123 更新时间:2023-12-04 22:24:52 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How can I insert variable into formula in VBA

(2 个回答)


2年前关闭。




我正在使用 2 个文件。
两个文件完全相同,但已在不同日期刷新。
该文件在每个工作日刷新,并保存一份与刷新日期一起保存的副本。

在最新文件中,我想比较当前文件中刷新日期前 7 天刷新的文件中的数字。
我将使用 =VLOOKUP() 公式执行此操作。
我在单元格“I1”中有一个公式,其中包含在当前文件前 7 天刷新的文件名。我想在我的 VBA 中使用这个单元格作为引用来从中查找数据。

这是我当前的代码:

' defining the two worksheets
Dim WB1 As Workbook
Dim WB2 As Workbook
' Capture current workbook
Set WB1 = ActiveWorkbook

[CODE TO FILTER PIVOT TABLE OF WB1]

'Open Last week's MS Sales File
Workbooks.Open FileName:="C:\Users\[My Username]\W\X\Y\Z\" & Range("I1") & ".xlsm"
Set WB2 = ActiveWorkbook
WB2.Activate

[CODE TO FILTER PIVOT TABLE OF WB2]

Range("E29").Select
ActiveCell.FormulaR1C1 = "L.W"
Range("F29").Select
ActiveCell.FormulaR1C1 = "Change"
Range("E30").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-3],'[WB2]Software'!R30C2:R163C4,3,0),0)"

[MORE CODE to compare values from vlookup]

当我只需输入特定日期的特定文件的文件名时,该代码就可以工作。例如:
"=IFERROR(VLOOKUP(RC[-3],'[BASE NAME_ddmmyy.xlsm]Software'!R30C2:R163C4,3,0),0)"
但是,“ddmmyy”需要根据 WB1 中单元格“I1”中的值进行更新,其中包含 WB1 中日期前 7 天的日期。

错误:
Please see the screenshot here for the error that comes up

代码停止并向我显示这个^。它会将我带到“文档”文件夹中的文件资源管理器并显示“更新值:WB2”。即使 WB2 已经打开,它也不会打开并激活文件,然后为 vlookup 选择适当的范围。

任何帮助或支持表示赞赏!

最佳答案

Range.Address Property有一个非常有用的参数,叫做 External .将此设置为 True ,它将包括工作簿和工作表名称。

我做了一些额外的更改,以便您可以 Avoid Using Select in Excel VBA

Range("E29").Value= "L.W"
Range("F29").Value = "Change"
Dim SourceSheet AS Worksheet
Set SourceSheet = wb2.Worksheets("Software")
Range("E30").FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-3]," & _
SourceSheet.Range(SourceSheet.Cells(30,2), SourceSheet.Cells(163,4)).Address(True, True, xlR1C1, True) & _
",3,0),0)"

关于excel - 使用 VBA,您可以输入一个引用另一个具有动态名称的工作簿的公式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58876458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com