C#excel - 仅提取列范围内的行

时间:2011-08-23 16:03:38

标签: c# excel range

我有以下代码:

Excel.Range range = workSheet.UsedRange;
for (rowCount = 2; rowCount <= range.Rows.Count; rowCount++)
  {
     //Do something here
  }

但是,我遇到以下问题。如果我有以下excel数据:

cell1, cell2, cell3

cell4, cell5, cell6

..............cell7

range.Rows.Count将返回3.但是,我不关心C列 - 它有一些数据用于第1列中的下拉列表。如何获取range.Rows.Count仅适用于A列和B列?

例如: enter image description here

1 个答案:

答案 0 :(得分:1)

假设A列中没有空格,只需沿着行向下走,直到使用range.Offset(x,y)命中空白行:(对不起,我对Excel VBA更流利,你必须翻译成C#)

Dim myCell as Range
set myCell = workSheet.Range("A2");
Do Until myCell.Formula = ""
     'Do something here
     set myCell = myCell.Offset(1,0) 'Moves down a row 
Loop

或者只是使用Worksheet.Cells(row,col)

以数字方式循环播放
Dim myRow as Integer
myRow = 2
Do Until cells(myrow,2).Formula = ""
     'Do something here
     myRow = myRow + 1
Loop

修改:您还可以使用Range("A1").End(xlDown)查找第一列的最后一个填充单元格。这应该适用于您当前的逻辑。像(我将在C#中尝试):

Excel.Range range = workSheet.Range("A1", Range("A1").End(xlDown));
for (rowCount = 2; rowCount <= range.Rows.Count; rowCount++)
  {
     //Do something here
  }