Cell Style Alignment on a range

calendar_today Asked Jul 17, 2012
thumb_up 14 upvotes
history Updated April 16, 2026

Question posted 2012 · +16 upvotes

I’m having a problem fromatting cells in an excel sheet. For some reason my code seems to be changing the style of all cells when I just want to change the style of a few specified, or a specified range.

Here’s some of the code that I am using:

app = new Microsoft.Office.Interop.Excel.Application();
workbook = app.Workbooks.Add(1);
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];

//Change all cells' alignment to center
worksheet.Cells.Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;

//But then this line changes every cell style back to left alignment
worksheet.Cells[y + 1, x + 2].Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;

Why would it change the style of multiple cells when I set it to just work on one? Is it not supposed to work how I want it to? Is there another way of doing this?

Accepted answer +14 upvotes

Based on this comment from the OP, “I found the problem. apparentlyworksheet.Cells[y + 1, x + 1].HorizontalAlignment”, I believe the real explanation is that all the cells start off sharing the same Style object. So if you change that style object, it changes all the cells that use it. But if you just change the cell’s alignment property directly, only that cell is affected.

Excel VBA objects referenced (5)

  • Application — Using events with the Application object
  • Application — Working with Other Applications
  • Cells.Style — PivotTable.ShowTableStyleLastColumn property (Excel)pivottable-showtablestylelastcolumn-property-excel-63370f64-5188-50fd-3e8a-6fdb0
  • Interop.Excel — Using events with Excel objects
  • Interop.Excel — Using Excel worksheet functions in Visual Basic

Top excel Q&A (6)

+14 upvotes ranks this answer #48 out of 167 excel solutions on this site .