设置工作簿路径中的文本单元格引用

时间:2019-04-16 09:30:15

标签: excel vba

我有一个VBA脚本,可以打开桌面上的其他工作簿。路径中有两个变量确定我希望打开的文件的位置:(1)PC的用户; (2)文件名。 PC变量的用户在单元格J3上定义,但在J2上的文件名都在同一张纸上。代码如下:

Option Explicit

Sub Chakars()

    Dim BeiguSheet As Worksheet
    Dim FileJauda As String

    Set BeiguSheet = ThisWorkbook.Sheets("Final")

        FileJauda = "C:\Users\ugikam\Desktop\" & "Jauda_" & BeiguSheet.Range("J2").Value & ".xlsm"

    Workbooks.Open (FileJauda)

End Sub

在定义FileJauda的行中,您可以看到对单元格J2的引用,该引用正常工作。但是,当我尝试使用下面的行替换路径中的另一个变量(即,用户为“ ugikam”)时,找不到该文件了。问题出在哪里?可能与“ ugikam”是一串文本有关吗?

FileJauda =“ C:\”&BeiguSheet.Range(“ J3”)。Value&“ \ Desktop \”&“ Jauda_”&BeiguSheet.Range(“ J2”)。Value&“ .xlsm”

1 个答案:

答案 0 :(得分:0)

该问题可能是由不可见的字符引起的。我尝试使用下面的代码来清洁两个字符串。此外,您可以使用威吓窗口调试并逐个检查单元格值。最后,您尝试打开未在任何地方定义的名称为 FilePath 的工作簿。尝试将 Workbooks.Open(FilePath)替换为 Workbooks.Open(FileJauda)

Option Explicit

Sub Chakars()

    Dim BeiguSheet As Worksheet
    Dim FileJauda As String

    Set BeiguSheet = ThisWorkbook.Sheets("Final")

        With BeiguSheet
            FileJauda = "C:\" & _
                        Application.Clean(Application.Trim(.Range("J3").Value)) & _
                        "\Desktop\Jauda_" & _
                        Application.Clean(Application.Trim(.Range("J2").Value)) & _
                        ".xlsm"
        End With

    Workbooks.Open (FileJauda)

End Sub