http://hi.baidu.com/echo_swjtu/blog/item/2b808c4ac34ec124aec3abdf.html
Range 對(duì)象是 Excel 應(yīng)用程序中最經(jīng)常使用的對(duì)象;在操作 Excel 內(nèi)的任何區(qū)域之前,都需要將其表示為一個(gè) Range 對(duì)象,然后使用該 Range 對(duì)象的方法和屬性。一個(gè) Range 對(duì)象代表一個(gè)單元格、一行、一列、包含一個(gè)或者更多單元塊(可以是連續(xù)的單元格,也可以式不連續(xù)的單元格)的選定單元格,甚至是多個(gè)工作表上的一組單元格。
在代碼中引用范圍。
Address 屬性:這個(gè)屬性返回范圍坐標(biāo)的字符串,坐標(biāo)以下面幾種格式之一表示,包括:“$A$1”(單元格在位置 A1)、“$1”(在工作表的第一行)和“$A$1:$C$5”(范圍包括介于 A1 和 C5 之間矩形內(nèi)的所有單元格)。“$”表示絕對(duì)坐標(biāo)(而非相對(duì)坐標(biāo))。
Excel.Worksheet ws = (Excel.Worksheet)ThisWorkbook.Worksheets[1];
Excel.Range rng;
rng = ThisApplication.ActiveCell;
rng = ws.get_Range("A1", Type.Missing);//使用對(duì)象的 Range 屬性指定一個(gè)區(qū)域
rng = ws.get_Range("A1:B12", Type.Missing);//使用對(duì)象的 Range 屬性指定一個(gè)區(qū)域
rng = (Excel.Range)ws.Cells[1, 1];//使用工作表的 Cells 屬性,指定單個(gè)行和列值
rng = ThisApplication.Range("SomeRangeName", Type.Missing);//引用一個(gè)命名范圍
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 對(duì)象的 Selection 屬性返回與選定單元格對(duì)應(yīng)的范圍
rng = (Excel.Range)ThisApplication.Selection;
//創(chuàng)建一個(gè)包含其他兩個(gè)合并范圍的范圍(在引號(hào)內(nèi)指定兩個(gè)范圍,并用逗號(hào)隔開)
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, ……);
//創(chuàng)建一個(gè)引用其他兩個(gè)范圍重疊部分的范圍(在引號(hào)內(nèi)指定兩個(gè)范圍,并不使用分隔符)
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 屬性取得相對(duì)于初始范圍的一個(gè)偏移
rng = (Excel.Range) ws.Cells[1, 1];
for (int i = 1; i <= 5; i++)
{
rng.get_Offset(i, 0).Value2 = i.ToString();
}
//使用范圍的 CurrentRegion 屬性取得一個(gè)代表當(dāng)前區(qū)域的范圍,這個(gè)當(dāng)前區(qū)域由最近的空行和列限定,即連接在一起的單元格
ThisApplication.get_Range("C3", Type.Missing).CurrentRegion.Font.Bold = true;
//使用范圍的 Areas 屬性取得范圍集合,其中每個(gè)范圍對(duì)應(yīng)于范圍內(nèi)容的一個(gè)區(qū)域
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 屬性,以及一個(gè) XlDirection 枚舉值(xlUp、xlToRight、xlToLeft、xlDown)來取得一個(gè)代表區(qū)域末端單元格的范圍(即四個(gè)方向上離該選中范圍最遠(yuǎn)的單元格)
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;
在代碼中操作范圍。
自動(dòng)填充:AutoFill
查找:Find
排序:Sort
Cells 獲取一個(gè) Range 對(duì)象,該對(duì)象表示工作表上的所有單元格(不僅僅是當(dāng)前正在使用的單元格)。
Cells[行,列]
Columns 獲取一個(gè)表示工作表上的所有列的 Range 對(duì)象
Rows 獲取一個(gè)表示工作表上的所有行的 Range 對(duì)象
posted on 2011-03-22 14:02
luis 閱讀(2624)
評(píng)論(0) 編輯 收藏 引用