如何在Excel的Excel.Range对象中选择工作表中的所有单元格?

时间:2011-01-31 12:16:40

标签: c# .net excel excel-2007

我正在尝试选择C#的Excel.Range对象中的Excel工作表中的所有单元格来应用自动调整,边框等。我在工作表中有一些合并的单元格。

这样做有什么简单的技巧吗?

10 个答案:

答案 0 :(得分:11)

here获取,这将选择工作表中的所有单元格:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select

答案 1 :(得分:11)

public void refreshSheetColumsSize(Worksheet ws)
 {
    ws.get_Range("a1").EntireRow.EntireColumn.Select();         
 }

答案 2 :(得分:8)

Excel.Range theRange = (Excel.Range)CurrentSheet.UsedRange;

在此示例中,CurrentSheet是存储当前正在使用的工作表的变量。

答案 3 :(得分:3)

正式,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

这会返回至少所有使用过的单元格,有时会多一点。 '多一点'可能是由于空白细胞(而不是空白)和其他随机事物。从我做过的研究中,这是最好的。

如果您真的想选择一切,那么

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

答案 4 :(得分:2)

我暂时没有做过任何excel开发(Excel 2003),但我总是发现在执行我希望在代码中实现的任务时录制宏有足够的指示来帮助。

在这种情况下,选择所有单元格并自动调整会得到代码:

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

我认为这大致可以转化为:

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

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

答案 5 :(得分:1)

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

如果您的工作表位于名为wsData:

的变量中
wsData.Range(wsData.Cells(1, 1), wsData.Cells(wsData.Rows.Count, wsData.Columns.Count))

答案 6 :(得分:1)

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

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

OR

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

要考虑工作表的已用单元格,您可以编写:

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

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

希望它有所帮助!

答案 7 :(得分:0)

很简单:

xlWorkSheet.UsedRange.Columns.Select()

答案 8 :(得分:0)

worksheet.Columns.AutoFit()

其中"工作表"是Worksheet

类型的变量

答案 9 :(得分:0)

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

细胞填充完成后。

相关问题