我有以下代码:
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列?
例如:
答案 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
}