Estou trabalhando em outro projeto do Excel e, dessa vez, mergulhei meus pés em macros VBA pela primeira vez. Eu tinha um conhecimento muito básico sobre VB, mas faz mais de uma década que eu usei a linguagem, então estou bastante perdido.
De qualquer forma, tenho a seguinte função que uso para acrescentar uma linha a outra tabela. Ele funciona perfeitamente, mas não me sinto confortável com a aparência deselegante:
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
Tenho certeza de que não sou o único que sente o mesmo ...
Eu tenho um número fixo de linhas agora. No entanto, isso pode mudar no futuro e eu gostaria que meu código estivesse pronto para isso sem a necessidade de adicionar ou remover uma instrução IF.
Basicamente, eu verifico uma certa célula dentro de uma linha se ela está vazia e, se não estiver, eu corro outra função para adicionar os valores daquela linha a uma nova linha em uma tabela.
Então, minha pergunta é, existe uma maneira de percorrer um intervalo de linhas como um loop For ou ForEach enquanto verifica um valor em uma certa coluna ao longo do caminho para que eu possa tornar esse pedaço de código mais curto / mais eficiente em VBA? Quaisquer ponteiros serão muito apreciados. Estou usando o Office 365, a propósito.