如何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();
细胞填充完成后。