[英]Excel VBA open workbook with part of its name
我想使用VBA從包含數字的特定路徑(例如2
打開一個工作簿。 我嘗試的任何變化均無法正常工作。
除數字外,工作簿的名稱以希伯來語命名,因此我希望VBA代碼將文件名基於數字來打開文件。
我在數字前有4個希伯來字母。 在希伯來語中,我們從右到左書寫。
這是我的代碼:
Set WB1 = Workbooks.Open("C:\RESULTS\" 2 & ".xlsx")
感謝您的幫助。
這對我有用:
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個字符。
嘗試這個
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.