Удалить использованный диапазон из каждого листа в книге - PullRequest
0 голосов
/ 16 октября 2019

У меня есть этот набор тестовых данных:

dataset

У меня он есть на нескольких листах, но его диапазон всегда различен - больше столбцов, больше строк и т. Д. Под этим «заголовком» всегда располагаются пустые строки.

Я хотел бы зациклить все листы и выбрать этот заголовок, используя End (xlDown) и End (xlToRight).

Я пытаюсьсделать это с помощью следующего кода:

    Sub WorksheetLoop()

    Dim ws As Worksheet
    Dim rng As Range

    For Each ws In ActiveWorkbook.Worksheets
        Set rng = Range("A1", Range("A1").End(xlDown).End(xlToRight))
            rng.Delete
    Next ws

End Sub

Этот макрос удаляет все на первом листе, и на любом другом листе ничего не происходит.

Я попытался использовать ws.rng, но затем я получил объектную ошибку.

Подскажите, пожалуйста, что я делаю не так?

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

Спасибо

1 Ответ

1 голос
/ 16 октября 2019

Эта ошибка очень распространена.

Необходимо добавить ссылку на лист для каждого экземпляра RangeCells), так как в противном случае ваш диапазон может охватывать два листа (указанный и активныйлист, который подразумевается при отсутствии чего-либо еще), что вызывает ошибку.

Set rng = ws.Range("A1", ws.Range("A1").End(xlDown).End(xlToRight))

В этом конкретном случае вы также можете рассмотреть этот вариант:

Set rng = ws.Range("A1").currentregion

CurrentRegion .

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