如何使用varible控制VBA中工作簿的路径

时间:2016-12-13 18:57:06

标签: excel vba excel-vba

当我想编写VBA以将数据从特定路径复制到另一个工作簿时,我遇到了一个问题

Sub Scorecard()
Dim Target_Workbook As Workbook
Dim Templete As Workbook
Dim Path As String
Dim a As Long
a = InputBox(Prompt:="Week End Date:", _
          Title:="Enter Your Week End Date ", Default:="")
Path = "C:\Users\Pudge\Desktop\Report\Scorecard\"&a"\Scorecard.xlsx"
Set Target_Workbook = Workbooks.Open(Path)
Set Template = ThisWorkbook
End Sub

我想使用变量a来引导路径根据我提供的不同文件夹;

因为在记分卡文件夹中,有许多名称为例如1,2,3,5,5的子文件夹;所以我想做的是如果我给a的vaule 1,让我们打开文件夹1中的scorecard.xlsx。

但它一直给我编译错误..

如果您有任何想法,请给我一个帮助。

THX 屠夫

1 个答案:

答案 0 :(得分:0)

首先,您的Path变量存在上述问题。我已经提到过,为了提供一个完整的解决方案。

宏开头有拼写错误;您已标注Templete,但后来提到了Template

我认为您的主要问题很可能在于您的变量a。它可能导致错误/无效的路径引用。没有必要将其标注为Long;由于您将其与其他字符串连接起来,因此使用String更合乎逻辑。

请参阅以下示例代码:

Sub Scorecard()
Dim Target_Workbook, Template As Workbook
Dim Path, a As String
a = InputBox(Prompt:="Week End Date:", Title:="Enter Your Week End Date")
Path = "C:\Users\Pudge\Desktop\Report\Scorecard\" & a & "\Scorecard.xlsx"
Set Target_Workbook = Workbooks.Open(Path)
Set Template = ThisWorkbook
End Sub

虽然我没有测试上面的代码,但它应该工作。尝试替代输入;尝试使用简单的数字开始,并验证路径是否正确。

如果可行,但您选择的应用程序不存在,则可能是您的用户输入存在问题。