XL: SaveAs Method for Worksheet Object Doesn't Save Single Ply

ID: Q157568

The information in this article applies to:

SYMPTOMS

The "SaveAs Method" topic in the Visual Basic Help file indicates that you can use the SaveAs method with a Worksheet object to save a single worksheet in the workbook as an individual file. However, if you use the following syntax:

   <Worksheet>.SaveAs filename:=<Path>

where <Worksheet> is the name of the worksheet you want to save, and <Path> is the path and name for the file you are saving, the entire workbook may be saved instead of the worksheet indicated by <Worksheet>.

CAUSE

This behavior occurs when you fail to specify a file format that saves only a single worksheet in the FileFormat argument for the SaveAs method.

RESOLUTION

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/

To save a single worksheet in your workbook as a separate file, include the FileFormat argument that specifies a file format that saves a single worksheet with the SaveAs method. Examples of single-sheet file formats include Microsoft Excel 4.0 Worksheet, Text Files, and Lotus 1-2-3 (*.wk1).

For example, to save Sheet2 in the active workbook in the Microsoft Excel 4.0 worksheet format to a file called Test.xls in the current directory, use the following code:

   Sub SaveSingleSheet()

      Worksheets("sheet2").SaveAs filename:="test.xls", _
         FileFormat:=xlExcel4

   End Sub

NOTE: If the preceding code is in the same workbook as the worksheet you are saving, you must close the workbook and then open Test.xls after you run the macro. Test.xls will be a single sheet workbook.

STATUS

This behavior is by design of the versions of Microsoft Excel listed at the beginning of this article.

MORE INFORMATION

If you use the SaveAs method with the Workbook object, Microsoft Excel saves the active worksheet in the workbook when you specify a single-sheet file format. For example, the following code saves the active worksheet in the active workbook as a single file called MyFile.xls in the Microsoft Excel 4.0 file format:

   ActiveWorkbook.SaveAs filename:="MyFile.xls", FileFormat:=xlExcel4

Examples of multisheet file formats include Microsoft Excel Workbook and Lotus 1-2-3 (*.wk3). When you use the SaveAs method and specify a multisheet file format (or omit the FileFormat argument), all the worksheets in the workbook are saved in the file. If you omit the FileFormat argument, the default file format is the Microsoft Excel Workbook format.

Additional query words: XL5 XL7 XL97 XL98 5.00 5.00c 7.00 7.00a 8.00 cursor

Keywords          : kbprg kbdta kbdtacode PgmFilem KbVBA 
Version           : WINDOWS:5.0,5.0c,7.0,7.0a,97; MACINTOSH:5.0,98
Platform          : MACINTOSH WINDOWS

Last Reviewed: May 18, 1999