【问题标题】:Refer to Dynamic Workbook请参阅动态工作簿
【发布时间】:2018-11-23 17:16:39
【问题描述】:

我每天打开一个文件名中包含今天日期的文件以获取数据。

我将数据放入另一个工作簿中,文件名中包含今天的日期。

我已经到了让 Excel 根据当前日期打开第一个文件的地步,但是由于文件名每天都在变化,因此我在两个工作簿之间切换时遇到了问题。

在其中一个工作簿中,我知道了今天的文件名,例如Reporting Status_23-Nov-2018,我写的公式明天会将名称更新为 Reporting Status_24-Nov-2018。我试图将一个变量定义为带有报告名称的单元格值,以便我可以说VariableName.activate。我会为第二个工作簿做同样的事情。

我有以下代码:

Dim BLREOD as workbook
Dim Midday as workbook
. 
. 
. 
BLREOD = activeworkbook.sheets("sheet name").range("X4").Value
Midday = activeworkbook.sheets("sheet name").range("X7").Value

X4X7 包含今天的文件名。

这不起作用,我找不到任何关于将工作簿变量声明为单元格值然后激活该变量的工作簿的内容。

【问题讨论】:

  • 试试Set BLREOD = workbooks(activeworkbook.sheets("sheet name").range("X4").Value)

标签: excel vba


【解决方案1】:

您可以直接使用 Workbooks.Open 打开每个工作簿并使用 2 个引用与它们进行交互:

Sub OpenWorkbooks()
    Dim BLREOD As Workbook
    Dim Midday As Workbook

    Dim shParams As Worksheet
    Set shParams = ActiveWorkbook.Sheets("sheet name")

    Dim todayBLREODWBName As String, todayMiddayWBName As String
    todayBLREODWBName = shParams.Range("X4").Value
    todayMiddayWBName = shParams.Range("X7").Value

    Set BLREOD = Workbooks.Open(todayBLREODWBName)
    Set Midday = Workbooks.Open(todayMiddayWBName)

    Midday.Worksheets("Data").Range("A1").Value = BLREOD.Worksheets("Data").Range("A1").Value
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多