如何selectc#的Excel.Range对象中的工作表中的所有单元格?

我试图selectExcel中的所有单元格的Excel.Range对象的C#应用​​自动拟合,边框等我有一些合并的单元格内的单元格。

有没有简单的伎俩这样做?

从这里开始 ,这将select工作表中的所有单元格:

 lastCol = ActiveSheet.Range("a1").End(xlToRight).Column lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select 
 public void refreshSheetColumsSize(Worksheet ws) { ws.get_Range("a1").EntireRow.EntireColumn.Select(); } 
 Excel.Range theRange = (Excel.Range)CurrentSheet.UsedRange; 

在这个例子中,CurrentSheet是你存储当前正在使用的工作表的variables。

我有一段时间没有做任何的Excel开发(Excel 2003),但是我总是发现,在执行我想要在代码中实现的任务时logging一个macros有足够的指针来帮助。

在这种情况下,select所有的单元格和自动安装代码如下:

 Sub Macro1() Cells.Select Cells.EntireColumn.AutoFit End Sub 

我想可以粗略地翻译成:

 ((Microsoft.Office.Interop.Excel.Range)_sheet.Cells.Select()).AutoFit(); 

其中_sheet是您正在使用的工作表的实例。 (另)

正式,Excel.Worksheet.UsedRange.Rows和Excel.Worksheet.UsedRange.Columns。

在实践中,它是越野车,你必须减去开始行和列。 最接近正确的答案是:

  Public ReadOnly Property LastColumn() As Integer Get Return ExcelWorksheet.UsedRange.Columns.Count + _ ExcelWorksheet.UsedRange.Column - 1 End Get End Property Public ReadOnly Property LastRow() As Integer Get Return ExcelWorksheet.UsedRange.Rows.Count + _ ExcelWorksheet.UsedRange.Row - 1 End Get End Property 

至less会返回所有使用的单元格,有时会多一点。 “多一点”可能是由于空白单元(而不是空单元)和其他随机事物。 形成我所做的研究,这是最好的,可以做到的。

如果你真的想select一切,那么

 ExcelWorksheet.Activate() ExcelWorksheet.Cells.Select() 

更清洁,并且不依赖于Excel 2007中增加的行数/列数:

如果您的工作表在一个名为wsData的variables中:

 wsData.Range(wsData.Cells(1, 1), wsData.Cells(wsData.Rows.Count, wsData.Columns.Count)) 

考虑工作表的所有单元格,你可以这样写:

 workSheet.Cells[workSheet.Rows.Count,workSheet.Columns.Count] 

要么

  workSheet.get_Range("A1","IV65536") 

要考虑工作表中使用的单元格,你可以写:

 workSheet.Rows.SpecialCells(XlCellType.xlCellTypeLastCell, XlSpecialCellsValue.xlTextValues) 

“工作表”代表您正在处理的工作表。 两个代码示例都返回一个范围。

希望能帮助到你!

很简单:

 xlWorkSheet.UsedRange.Columns.Select() 
 worksheet.Columns.AutoFit() 

其中“工作表”是工作表types的variables

  xlWorksheet.get_Range("a1").EntireRow.EntireColumn.AutoFit(); xlWorksheet.get_Range("a1").EntireColumn.EntireRow.AutoFit(); 

细胞填充完成后。