Увеличение столбцов VBA Excel

Я пытаюсь объединить несколько столбцов различной длины в 1 столбец на другом листе, чтобы разрешить vlookups из этого столбца.

Я могу легко увеличить вниз по первому столбцу, но у меня возникли проблемы с переходом к следующему столбцу.

ниже приведен код, с которым я работал. Я пытаюсь использовать идентификацию ячеек для увеличения номера столбца, но я получаю ошибку определения приложения или определения объекта 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

первый do, пока строка не закомментирована, потому что я пытаюсь получить идентификатор ячеек для работы, прежде чем пытаться увеличить.

что я делаю не так?

22
задан Raystafarian
25.03.2023 16:52 Количество просмотров материала 3410
Распечатать страницу

2 ответа

Range() ищет адрес или диапазон ячеек. Используйте клетки () сами по себе:

Do Until Sheets("Transposed").Cells(row, "B").Value = ""

Range не любит одиночные ссылки Cells ().

4
отвечен Scott Craner 2023-03-27 00:40

Скотт абсолютно прав (+1). Но, я бы подошел к этой проблеме немного иначе, чем вы с For петли. Таким образом, вы можете быть более точным, и следить за тем, что все делает, если вам нужно масштабировать

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
2
отвечен Raystafarian 2023-03-27 02:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх