XL: How to Programmatically Save a File to a Network Drive

ID: Q141512

The information in this article applies to:

SUMMARY

In Microsoft Excel, you can save a file to any drive to which you have write and delete privileges. In addition, you can use a Microsoft Visual Basic for Applications macro to save the active workbook and use a variable for the file name. You can use variables from the ActiveWorkbook.Name property, from input box data, or from a cell reference.

NOTE: If you use the full path for the file name, Microsoft Excel will know exactly where to save the file. If the path is not given, Microsoft Excel will save the file to the currently active directory or folder.

MORE INFORMATION

Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

   http://www.microsoft.com/support/supportnet/refguide/

Sample Macro 1

Save the active workbook with a variable to a specified path. To do this, use the following macro:

   Sub SaveWithVariable()

       MyFile = ActiveWorkbook.Name

       ' Do not display the message about overwriting the existing file.
       Application.DisplayAlerts = False

       ' Save the active workbook with the name of the
       ' active workbook. Save it on the E drive to a folder called
       ' "User" with a subfolder called "JoeDoe."
       ActiveWorkbook.SaveAs Filename:="E:\User\JoeDoe\" & MyFile

       ' Close the workbook by using the following.
       ActiveWorkbook.Close

   End Sub

NOTE: In Microsoft Excel for the Macintosh, the path used to save the file might resemble the following

   ActiveWorkbook.SaveAs FileName:="User:JoeDoe:" & MyFile

where "User" is a folder on the Desktop that is mapped to a network drive.

Sample Macro 2

Use a file name stored in a cell and save the file to the network server. To do this, use the following macro:

   Sub SaveWithVariableFromCell()
       SaveName = ActiveSheet.Range("A1").Text
       ActiveWorkbook.Close Filename:="E:\User\JoeDoe\" & SaveName & ".xls"
   End Sub

REFERENCES

"Visual Basic User's Guide," version 5.0, pages 89-137

Additional query words: 5.00 7.00 8.00 XL98 XL97 XL7 XL5

Keywords          : kbprg kbdta kbdtacode PgmHowto KbVBA 
Version           : WINDOWS:5.0,7.0,97; MACINTOSH:5.0,98
Platform          : MACINTOSH WINDOWS
Issue type        : kbhowto

Last Reviewed: May 17, 1999