Я работаю над другим проектом Excel и на этот раз впервые погрузился в макросы VBA. У меня были базовые знания по VB, но прошло уже более десяти лет с тех пор, как я использовал этот язык, поэтому я довольно растерялся.
В любом случае, у меня есть следующая функция, которую я использую для добавления строки в другую таблицу. Это работает безупречно, но меня не устраивает то, как не элегантно это выглядит:
Sub setRecord()
If [K2].Value <> "" Then
appendToRecord "RecordsTable", [E2:K2].Value
End If
If [K3].Value <> "" Then
appendToRecord "RecordsTable", [E3:K3].Value
End If
If [K4].Value <> "" Then
appendToRecord "RecordsTable", [E4:K4].Value
End If
If [K5].Value <> "" Then
appendToRecord "RecordsTable", [E5:K5].Value
End If
If [K6].Value <> "" Then
appendToRecord "RecordsTable", [E6:K6].Value
End If
End Sub
Я уверен, что я не единственный, кто чувствует то же самое ...
У меня есть фиксированное количество строк прямо сейчас. Однако это может измениться в будущем, и я хотел бы, чтобы мой код был готов к этому без необходимости добавлять или удалять оператор IF.
По сути, я проверяю определенную ячейку в строке, если она пуста, и, если это не так, я запускаю другую функцию, чтобы добавить значения в этой строке в новую строку в таблице.
Итак, мой вопрос заключается в том, есть ли способ циклически проходить через ряд строк, например цикл For или ForEach, при этом проверяя значение в определенном столбце, чтобы я мог сделать этот фрагмент кода более коротким / более эффективным в VBA? Любые указатели будут высоко оценены. Я использую Office 365, кстати.