Range () está procurando por um endereço ou um intervalo de células. Use as células () por si só:
Do Until Sheets("Transposed").Cells(row, "B").Value = ""
O intervalo não gosta de uma única referência de células ().
Estou tentando combinar várias colunas de comprimentos variados em uma coluna em outra folha para permitir vlookups dessa coluna.
Eu posso incrementar a primeira coluna facilmente, mas estou tendo problemas para passar para a próxima coluna.
Abaixo está o código com o qual eu estava trabalhando. Eu estou tentando usar a identificação de células para incrementar o número da coluna, mas estou recebendo um aplicativo definir ou objeto definir erro 1004.
Sub TestTwo()
Sheets("Transposed").Activate
Dim row As Double
row = 3
'Do Until Sheets("Transposed").Range("B" & row).Value = ""
Do Until Sheets("Transposed").Range(Cells(row, "B")).Value = ""
Sheets("OneList").Range("B" & row - 1).Value = Sheets("Transposed").Range("B" & row).Value
row = row + 1
Loop
End Sub
O primeiro faz até que a linha seja comentada porque estou tentando fazer com que o identificador de células funcione antes de tentar incrementar.
O que estou fazendo de errado?
Range () está procurando por um endereço ou um intervalo de células. Use as células () por si só:
Do Until Sheets("Transposed").Cells(row, "B").Value = ""
O intervalo não gosta de uma única referência de células ().
Scott está exatamente correto (+1). Mas, eu abordaria esse problema de maneira um pouco diferente de você com For
loops. Dessa forma, você pode ser mais preciso e acompanhar tudo o que acontece se precisar aumentar de tamanho
Option Explicit
Sub CombineColumns()
Dim sourceColumns As Long
Dim lastRow As Long
Dim combinedRow As Long
combinedRow = 1
Dim sourceRows As Long
For sourceColumns = 2 To 4 'B, C, D or whatever your range is
lastRow = Cells(Rows.Count, sourceColumns).End(xlUp).Row
For sourceRows = 1 To lastRow
Sheet2.Cells(combinedRow, 1) = Cells(sourceRows, sourceColumns)
combinedRow = combinedRow + 1
Next
Next sourceColumns
End Sub