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

标签 excel vba formula

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





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/

相关文章:

vba - 在 Excel 中使用 VBA 循环遍历范围

vba - 从每月名称文件复制数据表的宏公式是什么?

excel - 从 Excel 连接到 Internet 服务器上的 Access 数据库

c++ - 用已知公式求解缺失变量

JavaScript - 如何在显示为正方形/矩阵的元素线性数组中按键查找元素的 x,y 位置?

vba - 我可以将多个对象调暗为整数/变体/等吗?在一行?

Excel VBA Redshift 查询性能改进

excel - 使用Excel中的VBA将所有工作表的填充颜色设置为 "No Fill"

excel - 根据每个文件的 B4 单元格内容批量重命名 Excel 2010 文件

javascript - 使用 transform api 的 3d 幻觉效果