我希望使用VBA打开一个包含数字的文件夹,例如2
,并涉及到IT技术。但是,我试过的各种变形都不能正常工作。
这个工作簿的名称除了数字以外都是用希伯来语书写的,所以我希望VBA代码可以基于数字来打开文件。
在数字之前有4个希伯来字母。在希伯来语中,我们从右到左书写。
下面是我的代码:
Set WB1 = Workbooks.Open("C:\RESULTS\" 2 & ".xlsx")
谢谢您的帮助。
我希望使用VBA打开一个包含数字的文件夹,例如2
,并涉及到IT技术。但是,我试过的各种变形都不能正常工作。
这个工作簿的名称除了数字以外都是用希伯来语书写的,所以我希望VBA代码可以基于数字来打开文件。
在数字之前有4个希伯来字母。在希伯来语中,我们从右到左书写。
下面是我的代码:
Set WB1 = Workbooks.Open("C:\RESULTS\" 2 & ".xlsx")
试试这个
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
sFound
的值。 - MrigsFound = Dir(fPath & "\" & "*2*.xlsx")
更改为sFound = Dir(fPath & "*2*.xlsx")
。你可以尝试一下这个。 - MrigOption 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个字符。