2013-09-10 94 views
0

我正在使用Excel中引用多個工作簿的相當長的VBA代碼。我遇到的問題是每個工作簿的名稱每個月都會發生變化以反映新的月份/日期,然後我需要使用新的工作簿名稱更新代碼才能使其工作。而且,每個月的名稱變化並不總是標準。將工作簿名稱更改爲VBA中的標準名稱

有什麼辦法可以爲VBA代碼的目的,重命名每個工作簿,該代碼使用一些標準名稱,以便我不需要每次都更改它?我知道我可以創建一個新變量,將其稱爲「book1」,並將其定義反映爲工作簿的新名稱,但每個使用宏的人都不知道如何使用VBA,因此無法每個月都進行一次更改變量的名稱。理想情況下,我希望VBA始終將文件識別爲另一個名稱,而不管其真名,我設置並且不會更改。我認爲每個文件都附有一些「技術名稱」,這些文件不會更改我可以使用的內容。

我已經玩弄使用對話框的想法,所以用戶可以輸入文件的新名稱,從而使代碼相應地改變,但如果可能的話,希望避免這種情況。

這可能會也可能不會,但謝謝您的幫助!

+0

執行工作簿的文件名改變呢? – jmstoker

+0

以下是關於如何引用可能有用的工作簿的一些建議。 http://www.techrepublic.com/blog/10-things/10-ways-to-reference-excel-workbooks-and-sheets-using-vba/ – jmstoker

+0

「Workbooks.Open」方法將允許用戶選擇宏將運行哪些工作簿。您可以在'Workbook'對象變量上使用這種方法,而不是像'Workbooks(「c:\ files \ August_Report.xlsx」)等那樣的字符串或硬編碼項目。 –

回答

0

兩個可能性:

  • 你可以把一個額外的表在工作簿中,並在此表中定義該文件的名稱是正確的。任何Excel用戶應該能夠保持這些信息。你當然可以在運行你的Long VBA代碼之前檢查 - 如果這些文件存在的話。
  • 如果文件名稱例如是「filetobeused12_august2013」​​,那麼您可以搜索以「filetobeused12」開頭的最新文件,並在您的代碼中使用此文件。這肯定是更復雜的方法!

希望幫助, 最大

相關問題