我想使用VBA打开来自包含数字的特定路径的工作簿,例如2
。我试过的任何变化都不起作用。
除了数字之外,工作簿的名称是希伯来语,所以我希望VBA代码以文件名为基础打开文件。
我在希伯来语前有4个字母。在希伯来语中,我们从右到左书写。
这是我的代码:
Set WB1 = Workbooks.Open("C:\RESULTS\" 2 & ".xlsx")
感谢您的帮助。
答案 0 :(得分:3)
这对我有用:
Option Explicit
Sub TestMe()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim wbs As Workbook
Dim strExtension As String
Dim lngNumber As String
Dim lngAdditional As Long
Dim lngLenFile As Long
strExtension = ".xlsx"
lngNumber = 20
lngAdditional = 4
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Users\Desktop\")
lngLenFile = Len(strExtension) + Len(lngNumber) + lngAdditional
For Each objFile In objFolder.Files
If Left(objFile.Name, Len(lngNumber)) = lngNumber And _
Right(objFile, Len(strExtension)) = strExtension And _
Len(objFile.Name) = lngLenFile Then
Debug.Print objFile.Name
Set wbs = Workbooks.Open(objFile)
End If
Next objFile
End Sub
代码的想法是使其灵活,因此添加了lngNumber
和strExtension
。它始终检查尺寸以及左右两侧。因此24Some.xlsx
与2Some.xlsx
不同。
Debug.Print
以查看打开的文件。
lngAdditional
,用于额外的4个字符。
答案 1 :(得分:3)
试试这个
Dim sFound As String, fPath As String
fPath = "C:\RESULTS\"
sFound = Dir(fPath & "*2*.xlsx") 'get the first file in dir
If sFound <> "" Then
Set WB1 = Workbooks.Open(fPath & sFound)
End If