Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

Macro that changes cell dimensions on multiple sheets does not run as expected


View products that this article applies to.

Symptoms

You record a macro that changes column widths, changes row heights, or hides and unhides rows or columns while multiple sheets are selected in Microsoft Excel. When you do this, the macro may not run as expected.

When you run the macro, only the active sheet in the multiple sheet selection reflects the changes to the column widths and row heights.

↑ Back to the top


Workaround

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. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
To work around this issue, modify the recorded macro. To determine which portions of your macro to modify, follow these steps:
  1. In Microsoft Office Excel 2003 and in earlier versions of Excel, point to Record Macro on the Tools menu, click Record New Macro, and then click OK.

    In Microsoft Office Excel 2007, click Record Macro on the Developer menu in the Code group, and then click OK.
  2. Press and hold the CTRL key, and then select the sheet tabs for Sheet1 and Sheet2.
  3. Click the Sheet1 tab to switch to Sheet1.
  4. Select column A.
  5. Hide column A.

    To do this in Excel 2003 and in earlier versions of Excel, point to Column on the Format menu, and then click Hide.

    To do this in Excel 2007, click Format on the Home menu in the Cells group, point to Hide & Unhide, and then click Hide Columns.

    The recorded macro appears as follows:
    Sub Macro1()
       Sheets(Array("Sheet1", "Sheet2")).Select
       Sheets("Sheet1").Activate
       Columns("A:A").Select
       Selection.EntireColumn.Hidden = True
    End Sub
    					
Unhide column A in Sheet1 and in Sheet2, and then run the macro. Column A on Sheet1 is hidden. However, column A on Sheet2 remains unhidden. To correct the macro so that column A is hidden on both sheets, modify the macro so that it resembles the following example:
Sub Macro1()

   ' Select Sheet1 and Sheet2 and make Sheet1 the active sheet.

   Sheets(Array("Sheet1", "Sheet2")).Select
   Sheets("Sheet1").Activate

   ' Loop through each sheet in the selected sheets and hide column
   ' A on that sheet.

   For Each Sht In ActiveWindow.SelectedSheets
      Sht.Columns("A:A").Hidden = True
   Next

End Sub
				
If you want to be prompted for the column letter that you want the column to hide, use the following macro:
Sub Macro1()

   ' Assign column letter to variable.
   colx = InputBox ("Enter a letter for the column to hide")

   ' Select Sheet1 and Sheet2 and make Sheet1 the active sheet.

   Sheets(Array("Sheet1", "Sheet2")).Select
   Sheets("Sheet1").Activate

   ' Loop through each sheet in the selected sheets and hide column
   ' A on that sheet.

   For Each Sht In ActiveWindow.SelectedSheets
      Sht.Columns("" & colx & ":" & colx & "").Hidden = True
   Next

End Sub
				

↑ Back to the top


Keywords: KB213823, kbprogramming, kbprb, kbpending, kbmacro, kbdtacode

↑ Back to the top

Article Info
Article ID : 213823
Revision : 6
Created on : 1/24/2007
Published on : 1/24/2007
Exists online : False
Views : 488