簡體   English   中英

如何在Excel的Excel.Range對象中選擇工作表中的所有單元格?

[英]How to Select all the cells in a worksheet in Excel.Range object of c#?

我試圖在C#的Excel.Range對象中選擇Excel工作表中的所有單元格來應用自動調整,邊框等。我在工作表中有一些合並的單元格。

這樣做有什么簡單的伎倆嗎?

這里開始 ,這將選擇工作表中的所有單元格:

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是存儲當前正在使用的工作表的變量。

正式地,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()

我暫時沒有做任何excel開發(Excel 2003),但我總是發現在執行我希望在代碼中實現的任務時記錄宏有足夠的指針來幫助。

在這種情況下,選擇所有單元格並自動調整會給出代碼:

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

我想這會粗略地轉化為:

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

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

要考慮工作表的所有單元格,您可以編寫如下:

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

要么

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

要考慮工作表的已用單元格,您可以編寫:

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

“工作表”代表您正在處理的工作表。 兩個代碼示例都返回一個范圍。

希望能幫助到你!

更清潔,並不依賴於Excel 2007中增加的行數/列數:

如果您的工作表位於名為wsData的變量中:

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

非常簡單:

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

其中“工作表”是Worksheet類型的變量

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

細胞填充完成后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM