Я создаю приложение vb.net для обновления таблицы Excel. Я получаю доступ к файлу Excel, используя Imports Microsoft.Office.Interop.
Пока я могу добавлять данные на нужный рабочий лист, используя жестко заданные координаты ячеек, например:
sheet.Cells(3, 3) = mystring
Мне нужно перебрать каждую строку, чтобы найти первую строку, в которой каждая из первых 10 ячеек (AJ) не содержит данных, поэтому я могу обновить эти ячейки. Мне нужно сделать это таким образом, поскольку столбцы K и далее могут содержать другие данные, поэтому я не могу проверить целые пустые строки.
Моя попытка началась с простой проверки ячейки A в каждой строке для начала, пытаясь определить пустую/пустую ячейку. Если бы это сработало, я бы подумал об использовании цикла for внутри цикла do while, чтобы перемещаться по ячейкам в строке.
Используя следующий код, я получаю окно сообщения с указанием «System.__ComObject».
Dim rowcount As Integer = 0
Dim emptyrowfound As Boolean = False
Do While emptyrowfound = False
rowcount += 1
MessageBox.Show(sheet.Cells(rowcount, 1).ToString) ' attempt to view cell contents for testing purposes
If sheet.Cells(rowcount, 1).ToString = "" Then ' attempt to test if cell is blank/empty
emptyrowfound = True
End If
Loop
После работы я намерен применить обновления ячеек, например:
sheet.Cells(rowcount, 3) = mystring
...
Может ли кто-нибудь предложить лучший способ проверки и получения номера строки?
Решение проблемы
Во-первых, я бы сделал свою проверку, начав с 10-го столбца и работая влево для каждой строки, используя Range
объект. Вы можете использовать Range.End(xlleft)
для проверки всех ячеек слева от указанной ячейки - она остановится на первой непустой ячейке, которая, как вы ожидаете, будет в первом столбце. Затем вы сможете использовать это Range.Row
свойство для возврата номера строки нужной ячейки.
Комментариев нет:
Отправить комментарий