SaveAs Method for Worksheet Object Doesn't Save Single Ply (157568)



The information in this article applies to:

  • Microsoft Excel 97 for Windows
  • Microsoft Excel for Windows 95
  • Microsoft Excel for Windows 5.0
  • Microsoft Excel 98 Macintosh Edition

This article was previously published under Q157568

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. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers 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 requirements. 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.

Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbdtacode kbProgramming KB157568