簡體   English   中英

Excel VBA打開工作簿及其部分名稱

[英]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

該代碼的思想是使其具有靈活性,因此添加了lngNumberstrExtension 它始終檢查大小以及左右。 因此, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM