Найти диапазон, а затем очистить содержимое из другого диапазона на основе найденного диапазона - PullRequest
1 голос
/ 16 апреля 2020

Не уверен, что я очень хорошо объяснил это в своем вопросе, но я постараюсь объяснить здесь лучше.

Что я хотел бы сделать, так это понять, как я могу искать диапазон для уточнения c текст и использовать этот поиск, чтобы определить диапазон, из которого я могу очистить содержимое. область, из которой я хочу очистить содержимое, содержит фиксированные данные, которые я бы хотел пропустить. Но данные, которые я хочу очистить, всегда находятся в фиксированном диапазоне ячеек.

Чтобы объяснить лучше. Если у меня есть диапазон поиска A2: G50, я хочу найти этот диапазон для данных, основываясь на раскрывающемся списке. Найдя, я хочу очистить содержимое в диапазоне A для 11 ячеек, а затем C: G для 11 ячеек. оставляя содержимое в диапазоне B.

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

Private Sub CommandButton2_Click()

Dim rgFound As Range
Set rgFound = Sheets("Planning").Range("A:A").Find(What:="AD6")

Range("rgFound").Resize(11, 12).Offset(, 2).Clear


End Sub

Получение ошибки времени выполнения, определенной приложением / объектом, 1004

Спасибо

1 Ответ

1 голос
/ 16 апреля 2020

Вместо Range("rgFound") это просто rgFound. Эта переменная является ссылкой на найденный диапазон.

Обратите внимание, что вы должны проверить, было ли что-то найдено, прежде чем использовать его:

If Not rgFound Is Nothing Then
    'now you can use rgFound
    rgFound.Resize(11, 12).Offset(, 2).Clear
Else
    MsgBox "nothing was found"
End If

Также обратите внимание, что для диапазона . Метод поиска также необходимо определить параметры LookIn, LookAt, SearchOrder и MatchByte. В противном случае Excel будет использовать все, что использовалось ранее в пользовательском интерфейсе или VBA (и ваша находка будет работать случайным образом или нет). Таким образом, вы должны явно определить их.

...