2012-05-25 60 views
6

Có cách nào để tìm hàng trống đầu tiên có sẵn trong bảng excel bằng vsto hoặc C#? Tôi đã tìm kiếm hàng giờ nhưng không thể tìm thấy bất kỳ thứ gì liên quan đến nó. Bất kỳ sự giúp đỡ trong vấn đề này sẽ được rất nhiều đánh giá caohàng trống đầu tiên trong excel

Trả lời

2

Nếu App là ứng dụng excel của bạn, bạn có thể lặp nghĩ các hàng bắt đầu từ số 1 và tìm kiếm những sản phẩm nào sử dụng chức năng COUNTA đầu tiên (nó trả về số tế bào không trống cho một Range):

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); 
} 

Khi vòng lặp while thoát, rowIdx là chỉ mục của hàng trống đầu tiên.

CountA nhận 29 đối số tùy chọn khác, vì vậy có thể bạn phải vượt qua Missing.Value 29 lần với các phiên bản trước của khung.

2

Có một tài sản Range.End hoặc phương pháp Range.get_End mà kết hợp với một hướng sẽ cung cấp cho bạn các ô trống đầu tiên trong một phạm vi.

Có xem xét câu hỏi này cho một giải pháp khả thi: How to find the Next blank row in Excel sheet programatically using C#
Các bit chìa khóa hạnh phú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 

Nhưng nếu bạn đã có một cột mà bạn biết sẽ luôn có mỗi tế bào điền cho đến khi cuối cùng sau đó bạn có thể kết thúc theo hướng xuống.

+0

nó hiển thị hàng được sử dụng cuối cùng. nhưng tôi muốn tìm chỗ trống đầu tiên bởi vì lần cuối được sử dụng có thể là bất kỳ nơi nào – John

+0

Vì vậy, bạn thực sự muốn hàng trống đầu tiên ngay cả khi hàng sau khi nó không rỗng? – Nanhydrin

Các vấn đề liên quan