Найти, скопировать и вставить в качестве ссылки все заполненные строки, но только ограниченное количество столбцов - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь найти в моем листе «Все данные» строки, которые соответствуют определенному критерию в первом столбце, а затем скопировать эти строки в лист с именем «TAP». Все это прекрасно работает, но я хочу сохранить связь между листами, чтобы при обновлении данных в «Все данные» данные в «TAP» также менялись. Чтобы достичь этого, я решил вставить его как ссылку.

Опять же, это работает нормально, но из-за этого (я думаю) все остальные столбцы, которые не заполнены в «Все данные», заполняются с нулями в листе «TAP» при копировании. Поэтому я хотел бы ограничить копирование всеми заполненными строками, но только первыми 14 столбцами, чтобы избежать того, чтобы остальные из них были нулями.

Мой код такой, как показано ниже:

Private Sub CommandButton1_Click()
a = Worksheets("All Data").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To a

    If Worksheets("All Data").Cells(i, 1).Value = "TAP" Then
        Worksheets("All Data").Rows(i).Copy
        Worksheets("TAP").Activate
        b = Worksheets("TAP").Cells(Rows.Count, 1).End(xlUp).Row
        Worksheets("TAP").Cells(b + 1, 1).Select
        ActiveSheet.Paste Link:=True
        Worksheets("All Data").Activate
    End If

Next

Application.CutCopyMode = False

ThisWorkbook.Worksheets("All Data").Cells(1, 1).Select
End Sub

Извините, но это моя первая попытка в VBA, поэтому любая помощь будет высоко оценена.

1 Ответ

1 голос
/ 06 марта 2020

Чтобы скопировать 1-14 столбцов вместо полной строки, измените:

Worksheets("All Data").Rows(i).Copy

на:

Worksheets("All Data").Range(Cells(i, 1), Cells(i, 14)).Copy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...