2012-05-25 38 views
6

有沒有辦法在excel表中使用vsto或c#查找第一個可用的空行? 我一直在尋找小時,但無法找到任何與之相關的事情。 在這方面的任何幫助,將不勝感激excel中的第一個空行

回答

2

如果應用程序是您的Excel應用程序,你可以循環throught該行從1號開始,尋找第一個空的使用COUNTA函數(它返回非空單元格數量的範圍):

int rowIdx = 0; 
int notEmpty = 1; 
while (notEmpty > 0) 
{ 
    string aCellAddress = "A" + (++rowIdx).ToString(); 
    Range row = App.get_Range(aCellAddress, aCellAddress).EntireRow; 
    notEmpty = _App.WorksheetFunction.CountA(row); 
} 

當while循環退出時,rowIdx是第一個空行的索引。

CountA接收其他29個可選參數,因此您可能必須將早期版本的框架傳遞29次Missing.Value。

2

有一個Range.End屬性或方法Range.get_End與方向相結合,將讓你的第一個空白單元格在一個範圍內。

看一看這個問題的可能解決方案:How to find the Next blank row in Excel sheet programatically using C#
關鍵位爲:

Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"]; 
xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1]; 
long lastRow = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row; 
Long newRow = lastRow + 1 

但是,如果你有,你知道一列將始終有每一個細胞都充滿直到最後然後你可以在下行方向結束。

+0

它顯示最後使用的行。但我想找到第一個空白,因爲最後一次使用可能是任何地方 – John

+0

所以你真的想要第一個空行,即使它後面的行不是空的? – Nanhydrin