簡體   English   中英

Excel VBA-從同一文件夾中的文件導入,並帶有任意名稱,但末尾有特定編號

[英]Excel VBA - Import from a file in the same folder with an arbitrary name but a specific number at the end

我希望能夠從同一文件夾中的文件導入數據,但是調用的名稱並不重要,但末尾的數字確實可以。 目前我有

Sub Import_Data()

Dim rng As Range
Dim WB2 As Workbook
Dim FName As String
Dim c1 As Worksheet
Set c1 = Sheets("c")

    FName = Application.ActiveWorkbook.Path + "_w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00")
    Set WB2 = Workbooks.Open(Filename:=FName)

   c1.Range("L2:O6").Value = WB2.Worksheets(3).Range("M2:P6").Value

    c1.Range("L14:O18").Value = WB2.Worksheets(3).Range("M14:P18").Value

WB2.Close

End Sub

我想將以下行從

FName = Application.ActiveWorkbook.Path + "_w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00")

FName = Application.ActiveWorkbook.Path + *Any Name before the last 2 digits* & Format((WorksheetFunction.WeekNum(Now) - 1), "00")

因此,它基本上不會查看工作表的名稱,而是會查看末尾的兩位數。

周數在文件夾中將始終是唯一的,但名稱可能有所不同。 例如

文件夾可能包含以下文件:

Worksheet 1 w21
Different Name w22
Alternate w23

如果我們在w24中,我希望它從“ Alternate w23”中導入

我希望這是有道理的。 謝謝

編輯-替代

如果這不可能,那么如果前幾周的文件與當前文件具有相同的名稱,則該文件也將起作用。 因此,如果活動工作簿被稱為“ Workbook w23”,則它將在同一文件夾中找到“ Workbook w22”。 但是,可能需要概括表的名稱。 因此,與原來的建議“最后一個2位數字之前的任何名稱”不同 ,它將與活動工作簿的名稱相同,末尾有2個不同的數字

如果我的解釋正確,那么您只需要一個通配符:

FName = Dir(Application.ActiveWorkbook.Path & "\\*w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") & ".xlsm")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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