Eu tenho um intervalo de colunas com células em branco. Estou tentando copiar se alguma dessas células contém um texto. Para isso, escrevi o código a seguir, que funciona bem para a primeira linha. Como repetir isso para cada linha até a última linha usada?
Dim SrchRng As Range, cel As Range
Set SrchRng = Sheet1.Range("BI2:CZ2")
For Each cel In SrchRng
If cel.Value <> "" Then
Sheet1.Range("AH2").Value = cel.Value
End If
Next cel
Você quase fez tudo certo - falta apenas uma nuance: depois de escrever na célula de destino, você precisa mover esta célula para a direita ou para baixo. Isso pode ser feito, por exemplo, assim:
Caso você queira concatenar todos os valores não vazios de cada linha do intervalo em uma célula, conforme indicado em seu comentário, o código da macro não se torna muito mais complicado:
Tente o código abaixo. Ele primeiro localiza a última linha da planilha. Em seguida, percorra as linhas (da linha 2 até a última) e defina os valores, se encontrados, em AH.