如何在 VBA 中调暗和设置可变工作簿名称?

Alm*_*ere 1 variables excel vba

我有一个每周创建的工作簿,它具有可变名称结构。该名称结构如下:Week of YearInvoicedate。所以可能会调用一个示例文件1_Invoice_01052018.xlsm

我必须每周更新报告。我想将变量工作簿名称声明为 VBA 中的变量。我有另一个工作簿,其中包含通过 VBA 创建的报告的输出。在另一个工作簿中,我希望能够调用Invoice电子表格,但由于它有一个变量名称,我在查找它时遇到了问题。所以我把下面的VBA放在一起。

Sub Test()

Dim wb As Workbook
Dim ws As Worksheet

Set wb = "*Invoice*" & ".xlsm"
Set ws = Sheets("Sheet1")

wb.Activate
ws.Select

End Sub
Run Code Online (Sandbox Code Playgroud)

但是,这会导致“类型不匹配”错误。

我还尝试了以下方法:

Sub Test2()

Windows("*Invoice*" & ".xlsm").Activate

End Sub
Run Code Online (Sandbox Code Playgroud)

这也导致了错误。

关于如何在 VBA 中将变量工作簿名称设置为变量的任何想法?我一次只会打开其中一本工作簿,所以我不会遇到任何问题

Str*_*rub 5

您必须正确设置工作簿:

Sub Test()

  Dim wb As Workbook
  Dim ws As Worksheet
 
  Dim FilePath As String
  FilePath = "C:\" & AnotherVariable & ".xlsx"

  Set wb = Workbooks(FilePath)
  Set ws = Sheets("Sheet1")

  wb.Activate
  ws.Select

End Sub
Run Code Online (Sandbox Code Playgroud)