Excel tips : updating links in copied files

PRAVEEN KUMAR (MBA (Finance) B.Com.(P))   (3443 Points)

26 November 2011  

Excel Tips : Updating Links in Copied Files

 

Let's say you have two workbooks that you use for tracking sales in the current month, 2011NovemberA.xls and 2011NovemberB.xls, and that 2011NovemberA.xls contains links to data in 2011NovemberB.xls. When it comes time to copy the workbooks for the new month, you may be wondering about the best way to update all the links in the first workbook so they point to the second workbook for the new month.

 

To prepare workbooks for the new month, most people will open a Windows folder and copy the workbook files within Windows, not even in Excel. This, however, is the way to guarantee that you do the most work in updating the files. A simpler way is to bypass Windows and do the saving in Excel. Follow these general steps:

 

    Open both 2011NovemberA.xls and 2011NovemberB.xls in Excel.

    Use Save As to save the 2011NovemberB.xls file under the name 2011DecemberB.xls.

    Use Save As to save the 2011Novemberxls file under the name 2011DecemberA.xls.

 

As part of saving out 2011DecemberB.xls (step 2), Excel automatically updates all the links in 2011NovemberA.xls so that they point to the new file name. When you then save 2011DecemberA.xls (step 3), you complete the cycle and end up with the new workbooks for the new month, with the past month's files still secure on disk.

 

If saving the files under new names in Excel is not possible for some reason (perhaps someone else already made a copy of the workbook for the new month and made changes in the file) then you will need to resort to doing some manual editing of the links. Fortunately you can use the Find and Replace features of Excel to help in this task:

 

    Open the 2011DecemberA.xls file.

    Press Ctrl+H to display the Replace tab of the Find and Replace dialog box.

        In the Find What box, enter the root portion of the old worksheet name (2011NovemberB).

    In the Replace With box, enter the root portion of the new worksheet name (2011DecemberB).

    Click Replace All.

 

Excel goes through the entire worksheet—including the links—and makes changes to the appropriate text.

 

Another approach is to deal with your monthly files as a whole. In other words, don't have the filenames reflect the month, but put all the workbooks for the month in a single folder that is named after the month. Under this scenario, you could have a November folder, and then make a copy of the whole folder and name it December. You would then have duplicate copies of the workbooks in separate folders. You could work with them independently, as long as you don't try to open the same workbook from both months at the same time. (Excel won't allow you to open multiple workbooks with the same name.)

 

If you want to make your linking strategy more flexible, you can always use the INDIRECT function. For instance, suppose that your link is something like this:

 

=[2011NovemberB.xls]Sheet1!B3

 

You could put the name of the source file (2011NovemberB.xls) in a cell in the current worksheet (D5, for example) and replace the above expression with one like this:

 

=INDIRECT("[" & D5 & "]Sheet1!B3")

 

Changing the contents of cell D5 to a different filename will make that file the new source of data. There are a couple of "gottchas," however. First of all, you need to manually open the file that is the target of the link; Excel won't do it for you as it would with a regular link. Also, workbook filenames that contain spaces will trip up the INDIRECT formula. If you think you might have spaces in your filenames, you should change the formula to this:

 

=INDIRECT("['" & D5 & "']Sheet1!B3")