如何在VSTO/C#中使用行号和列号获取Excel范围?

Dan*_*her 29 c# excel vsto

我认为这个问题总结了一下.给定行和列的两个整数或者一个范围的两个角的行和列的四个整数,如何获得该范围的范围对象.

bur*_*ide 79

范围是多个单元格:

Excel.Worksheet sheet = workbook.ActiveSheet;
Excel.Range rng = (Excel.Range) sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[3,3]);
Run Code Online (Sandbox Code Playgroud)

范围是一个单元格:

Excel.Worksheet sheet = workbook.ActiveSheet;
Excel.Range rng = (Excel.Range) sheet.Cells[1, 1];
Run Code Online (Sandbox Code Playgroud)

  • @mirabilos`动态范围[[对象行索引],[对象列索引]]` (2认同)
  • Excel.Worksheet没有get_Range方法(我在VS 2010中使用C#) (2认同)

tic*_*tic 19

如果在Microsoft Excel 14.0对象库中使用,给定的答案将引发错误.对象不包含get_range的定义.而是使用

int countRows = xlWorkSheetData.UsedRange.Rows.Count;
int countColumns = xlWorkSheetData.UsedRange.Columns.Count;
object[,] data = xlWorkSheetData.Range[xlWorkSheetData.Cells[1, 1], xlWorkSheetData.Cells[countRows, countColumns]].Cells.Value2;
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您收到一条错误消息,指出“对象不包含 get_range 的定义”。

尝试跟随。

Excel.Worksheet sheet = workbook.ActiveSheet;
Excel.Range rng = (Excel.Range) sheet.Range[sheet.Cells[1, 1], sheet.Cells[3,3]].Cells;
Run Code Online (Sandbox Code Playgroud)