我有一个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”
答案 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