來源:https://www.cnblogs.com/xyzhuzhou/archive/2012/07/19/2599022.html
Range 對象是 Excel 應用程序中最經常使用的對象;在操作 Excel 內的任何區域之前,都需要將其表示為一個 Range 對象,然后使用該 Range 對象的方法和屬性。一個 Range 對象代表一個單元格、一行、一列、包含一個或者更多單元塊(可以是連續的單元格,也可以式不連續的單元格)的選定單元格,甚至是多個工作表上的一組單元格。 在代碼中引用范圍。 Address 屬性:這個屬性返回范圍坐標的字符串,坐標以下面幾種格式之一表示,包括:“$A$1”(單元格在位置 A1)、“$1”(在工作表的第一行)和“$A$1:$C$5”(范圍包括介於 A1 和 C5 之間矩形內的所有單元格)。“$”表示絕對坐標(而非相對坐標)。 Excel.Worksheet ws = (Excel.Worksheet)ThisWorkbook.Worksheets[1]; Excel.Range rng; rng = ThisApplication.ActiveCell; rng = ws.get_Range("A1", Type.Missing);//使用對象的 Range 屬性指定一個區域 rng = ws.get_Range("A1:B12", Type.Missing);//使用對象的 Range 屬性指定一個區域 rng = (Excel.Range)ws.Cells[1, 1];//使用工作表的 Cells 屬性,指定單個行和列值 rng = ThisApplication.Range("SomeRangeName", Type.Missing);//引用一個命名范圍 rng = ws.Range("A1", "C5")//直接引用范圍的 Cells、Rows 或 Columns 屬性,作用相同 rng = ws.Range("A1", "C5").Cells rng = ws.Range("A1", "C5").Rows rng = ws.Range("A1", "C5").Columns rng = (Excel.Range)ws.Rows[1, Type.Missing];//引用特定行或特定列或行和列的范圍 rng = (Excel.Range)ws.Rows["1:3", Type.Missing]; rng = (Excel.Range)ws.Columns[3, Type.Missing]; //Application 對象的 Selection 屬性返回與選定單元格對應的范圍 rng = (Excel.Range)ThisApplication.Selection; //創建一個包含其他兩個合並范圍的范圍(在引號內指定兩個范圍,並用逗號隔開) rng = ThisApplication.get_Range("A1:D4, F2:G5", Type.Missing);//與后三行效果相同 rng1 = ThisApplication.get_Range("A1", "D4"); rng2 = ThisApplication.get_Range("F2", "G5"); rng = ThisApplication.Union(rng1, rng2, Type.Missing, Type.Missing, ……); //創建一個引用其他兩個范圍重疊部分的范圍(在引號內指定兩個范圍,並不使用分隔符) rng = ThisApplication.get_Range("A1:D16 B2:F14", Type.Missing);//與后三行效果相同 rng1 = ThisApplication.get_Range("A1", "D16"); rng2 = ThisApplication.get_Range("B2", "F14"); rng = ThisApplication.Intersect(rng1, rng2,Type.Missing, Type.Missing, Type.Missing, Type.Missing,……); //使用范圍的 Offset 屬性取得相對於初始范圍的一個偏移 rng = (Excel.Range) ws.Cells[1, 1]; for (int i = 1; i <= 5; i++) { rng.get_Offset(i, 0).Value2 = i.ToString(); } //使用范圍的 CurrentRegion 屬性取得一個代表當前區域的范圍,這個當前區域由最近的空行和列限定,即連接在一起的單元格 ThisApplication.get_Range("C3", Type.Missing).CurrentRegion.Font.Bold = true; //使用范圍的 Areas 屬性取得范圍集合,其中每個范圍對應於范圍內容的一個區域 rng = ThisApplication.get_Range("Test", Type.Missing); for (int i = 1; i <= rng.Areas.Count; i++) { MessageBox.Show( rng.Areas[i].get_Address(Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing)); } //使用 End 屬性,以及一個 XlDirection 枚舉值(xlUp、xlToRight、xlToLeft、xlDown)來取得一個代表區域末端單元格的范圍(即四個方向上離該選中范圍最遠的單元格) Excel.Range rngLeft, rngRight, rngUp, rngDown; rng = (Excel.Range) ThisApplication.Selection; rngRight = rng.get_End(Excel.XlDirection.xlToRight); rngLeft = rng.get_End(Excel.XlDirection.xlToLeft); rngUp = rng.get_End(Excel.XlDirection.xlUp); rngDown = rng.get_End(Excel.XlDirection.xlDown); //使用 EntireRow 或 EntireColumn 屬性引用包含特定范圍的行或列 rng = ThisApplication.get_Range("Test", Type.Missing); rng.Areas[2].EntireRow.Font.Bold = true; 在代碼中操作范圍。 自動填充:AutoFill 查找:Find 排序:Sort Cells 獲取一個 Range 對象,該對象表示工作表上的所有單元格(不僅僅是當前正在使用的單元格)。 Cells[行,列] Columns 獲取一個表示工作表上的所有列的 Range 對象 Rows 獲取一個表示工作表上的所有行的 Range 對象