Копирование и вставка VBA - Пропуск бланков, без заголовка - PullRequest
0 голосов
/ 25 сентября 2019

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

Я могу заставить его пропустить пропуски, но затем он копирует столбцы рядом с ним.Я также могу заставить его копировать и вставлять только столбец, но он не пропускает пробелы.Поэтому мне просто нужен способ сделать только столбец A без заголовка и оставить его пустым на новом листе.

Я пробовал пропустить пропуски в специальной вставке, и он не работает.

Sub NewCopyandPaste()

    Dim wsSource As Worksheet
    Dim weTarget As Worksheet
    Dim y As Range

    Set wsSource = Workbooks("Book1.csv").Worksheets("Book1")
    Set weTarget = Workbooks("Book2.csv").Worksheets("Book2")

    With wsSource
        Set y = .Range(.Range("A2"), .Range("A2").End(xlDown))
        y.SpecialCells(xlCellTypeConstants).Copy
    End With

    weTarget.Range("C2").PasteSpecial xlPasteValues

    Application.CutCopyMode = False

End Sub

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Ваша проблема в том, что

Set y = .Range(.Range("A2"), .Range("A2").End(xlDown))

устанавливает y в диапазон от A2 до ячейки выше первая пустая ячейка Примечание 1

передайте это для использования End(XlUp) из нижней части листа

Set y = .Range(.Range("A2"), .Cells(.Rows.Count, 1).End(xlUp)) ' .Range("A2").End(xlDown))

Примечание 1. Строго говоря, то, что копируется, будет зависеть от того, будет ли пустая ячейка A3.

0 голосов
/ 25 сентября 2019

Я думаю, что проблема может быть в создании вашего диапазона.Попробуйте:

Dim wsSource As Worksheet
Dim weTarget As Worksheet
Dim y As Range

Set wsSource = Workbooks("Book1.csv").Worksheets("Book1")
Set weTarget = Workbooks("Book2.csv").Worksheets("Book2")

With wsSource
  Set y = Range("A2").End(xlDown)
    y.SpecialCells(xlCellTypeConstants).Copy
End With

weTarget.Range("C2").PasteSpecial xlPasteValues

Application.CutCopyMode = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...