2013-12-18 82 views
-2

您好我正在處理Excel工作簿,其中包含30個鏈接到此工作簿的文件。每月將這30個文件根據當前月份重新命名並保存在當前月份文件夾中。現在我必須用這30個鏈接手動更新工作簿。我們可以在宏的幫助下做到這一點,通過替換舊的鏈接自動更新這30個鏈接。宏來編輯Excel文件中的多個鏈接

+0

是的,它可能但我不會給你代碼,因爲這不是Stack Overflow的工作方式。您需要展示對正在解決的問題的最小理解,展示解決問題的嘗試等。請參閱[**幫助中心**](http:// stackoverflow。com/help)開始 – 2013-12-18 13:09:46

回答

0

沒有什麼是正確的;對你的問題唯一可能的答案是「是的,這是可能的。」

這不是一個答案,它只是爲了證明這是可能的,並給你一個開始。你的問題幾乎肯定會關閉或擱置。嘗試根據我的代碼創建一個宏,然後根據需要返回特定的問題。

我的擴展名是「xls」,因爲我仍然在計算機上使用Excel 2003來創建此答案。如果您使用的是更高版本,則您的擴展程序將爲「xlsm」或「xlsx」。

我有三個工作簿:「主」,「部門1」,「部門2」。我已經使用變量來保存工作簿「部門1」和「部門2」的名稱。您可能需要在名稱中包含源工作簿的路徑。我使用了變量,因此名稱可以很容易地更改。也許他們可以設置爲基於當前月份的表達式:

Wbook1 = Format(Now(), "yyyy-mmmm") & ".xls" 

會將Wbook1設置爲「2013-December.xls」。

Dim LastMonth As Date 
LastMonth = DateSerial(Year(Now()), Month(Now()) - 1, Day(Now())) 
Wbook1 = Format(LastMonth, "yyyy-mmmm") & ".xls" 

會將Wbook1設置爲「2013-November.xls」。

下面的宏將當前工作簿(「主」)的「Sheet1」內的兩個單元格設置爲其他工作簿內單元格的值。

Sub Try() 

    Dim Wbook1 As String 
    Dim Wbook2 As String 

    Wbook1 = "Dept 1.xls" 
    Wbook2 = "Dept 2.xls" 

    With Worksheets("Sheet1") 

    .Range("H18").Value = "='[" & Wbook1 & "]Sheet2'!D6" 
    .Range("H19").Value = "='[" & Wbook2 & "]Sheet3'!D9" 

    End With 

End Sub 

迴應的第一個評論

你正試圖手段的模糊的描述我已經給你儘可能多的信息,我可以。不要嘗試更好的描述,因爲這不是一個網站的類型,有人會根據詳細的規範創建完整的解決方案。

我提供的宏顯示如何創建從兩個其他工作簿複製值的鏈接。我已經使用了我能想到的最簡單的代碼,所以你應該能夠適應你的需求。

根據我的代碼,在您的主工作簿中創建一個宏,從您的一個源工作簿創建單個鏈接。我只是從源工作簿中複製了值。也許你想要一個結合兩個或更多值的表達式。嘗試創建該表達式。也許你想在主工作簿中搜索包含「[2013-November.xls]」的公式,並用「[2013-December.xls]」替換每個發生的事件。試試看。

將您的需求分解爲微小步驟,並嘗試一次解決一步。如果你的宏沒有達到你期望的水平,並且你無法確定爲什麼,那麼回到這個宏,描述它做了什麼以及你想要它做什麼,你可能會得到一個實例答案,因爲這是該網站專門研究的內容

+0

謝謝Tony和Mehow。我對宏真的很陌生,如果你們能夠更詳細地幫助我解決這個問題,我會非常感激。 – user3115226

+0

@ user3115226。我在回答中添加了對您評論的回覆。 –