Как преодолеть ошибку 1004 диапазона объекта _global не удалось - PullRequest
1 голос
/ 31 мая 2019

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

Как: Думаю, у меня есть 2 листа (с именами как «Объединенный», «HSR»") из HSR мне нужно скопировать все данные в комбинированный лист, за исключением значений столбца" D "

Dim ws As Worksheet
Dim ColumnLetter As Variant
    Set ws = Sheets("HSR")
    Worksheets("HSR").Select
    lr = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
    lr2 = Sheets("Combined").Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
    ColumnLetter = Split(ws.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Cells.Address(1, 0), "$")(0)
    Range("A2:C" & lr).Copy Sheets("Combined").Range("A" & lr2 + 1)
    Range("E2:ColumnLetter" & lr).Copy Sheets("Combined").Range("D" & lr2 + 1)
End Sub

Я ожидаю вывод, так как в комбинированном листе я не должен получать значения, которые находятся в столбце Dиз листа HSR

1 Ответ

2 голосов
/ 31 мая 2019

ColumnLetter является переменной.Вы используете его как String.

Изменить

Range("E2:ColumnLetter" & lr).Copy Sheets("Combined").Range("D" & lr2 + 1)

на

Range("E2:" & ColumnLetter & lr).Copy Sheets("Combined").Range("D" & lr2 + 1)

Также несколько советов

  1. lr = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row и lr2 = Sheets("Combined").Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row дастВы ошибаетесь, если .Find не возвращает ничего.Обрабатывайте его, как показано в .Find и .FindNext

  2. Избегайте использования .Select.Возможно, вы захотите увидеть Как избежать использования Select в Excel VBA

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