2016-04-17 67 views
-1

我想在一個具有恆定名稱,變量日期和由字母和數字組成的變量後綴的宏中打開一個excel工作簿。例如。我想知道如何在VBA中用變量名打開工作簿

「Allpostings_041616_big232.xlsx」可能是4月16日

文件名4月17日的文件可能看起來像這樣

「Allpostings_041716_agd214.xlsx」

如果我想選擇的文件對於我的宏中的tody日期,我將如何在VBA中編碼?

+0

有每天只有一個文件? – Comintern

+0

如何構建「由字母和數字組成的變量後綴」? –

回答

2

考慮:

Sub dural() 
    Dim P(1 To 5) As String 

    P(1) = "C:\TestFolder\" 
    P(2) = "Allpostings_" 
    P(3) = Format(Now(), "mmddyy") & "_" 
    P(4) = "big232.xlsx" 
    s = Join(P, "") 

    Workbooks.Open Filename:=s 
End Sub 

只需編輯P(4)線,以滿足您的需求。

編輯#1:

如果所有可能的文件都包含在一個單一的文件夾中,都有文件具有相同的名稱模式,那麼這裏就是找到正確的文件打開方式:

  1. 使用Dir()循環來收集所有的文件名
  2. 掃描列表中的文件的正確日期字段
  3. 輸入找到的文件
+0

謝謝你加里!我唯一擔心的是P(4)部分總是會變化的,我不會事先知道變化是什麼。我如何編寫代碼來「接受」P(4)的任何內容?再次感謝! –

+0

@LouM .........你怎麼樣,*(人類)*決定P(4)應該是什麼** ** –

+0

@LouM看我的**編輯#1 * *爲可能的方法 –

0

另一種方式......

Sub test() 
    workbookopen ("big232") 
    workbookopen ("agd214") 
End Sub 

Function workbookopen(lastpart As String) 
    ChDir ("C:\work\") 
    Files = Dir("*.xlsx") 
    Do While Files <> "" 
     If Files = "Allpostings_" & Format(Now(), "mmddyy") & "_" & lastpart & ".xlsx" Then 
      Workbooks.Open (Files) '"Allpostings_" & Format(Now(), "mmddyy") & "_" & lastpart & ".xlsx" 
     End If 
     Files = Dir 
    Loop 
End Function 
相關問題