Подтвердить что ты не робот

Excel Select vs Активировать

В чем разница между кодом VBA wb.Sheets(1).Cells.Select и wb.Sheets(1).Activate?

4b9b3361

Ответ 1

Разница между выбором заключается в том, что вы можете сразу выбрать несколько объектов. Выбранные объекты также помещаются в объект Selection, в который вы можете использовать методы. Если вы не выбираете несколько объектов, выбор (например, ячейки) активирует объект.

Активировать просто делает объект активным. Лучший способ подумать об этом - "можно выбрать многие ячейки, но только одна из них может быть активной ячейкой в ​​любой момент времени.

Примечание. У них обоих есть одна общая черта - они редко когда-либо нужны, и обычно они ничего не делают, кроме как замедляют ваш код. Вы можете работать непосредственно с объектом, не выбирая или не активируя его, и лучше всего использовать их, если это необходимо.

Ответ 3

Первый выбирает все ячейки на первом листе книги wb. Он не сработает, если лист не активен.

Второй просто активирует первый лист книги wb. Он не изменяет выбор или activecell на этом листе, и в некоторых случаях может не быть выбранного диапазона или activecell (например, если есть объект на выбранном в данный момент листе).

Ответ 4

Select - "Выбирает" ячейку

Activate - "Активирует" лист (вроде как говорить, чтобы сосредоточиться на листе)

Иногда вам нужно специально Activate листа, чтобы сделать Select

Ответ 5

Я нашел этот вопрос во время поиска, у меня был тот же вопрос. Вот что я заметил:

 Sub Transfer(x As Long)
   Dim Rng, ID as Range
   Dim i, j, n As Long

 Worksheets(5).Activate
 n = Worksheets(5).Range(Range("I88"), Range("I88").End(xlToRight)).Count

Worksheets(x).Select
 Set Rng = Worksheets(3).UsedRange.Find("Element", LookIn:=xlValues).Offset(1, 1)
 Set ElemID = Range(ElemRng.Offset(0, -1), ElemRng.Offset(0, -1).End(xlDown))
 Set ElemRng = Worksheets(3).Range(ElemRng, ElemRng.End(xlToRight))
End Sub

Я обнаружил, что я должен положить рабочий лист. активировать (или выбрать) или код будет запущен:


Ошибка времени выполнения: '1004' Определенная пользователем или объектная ошибка


Ответ 6

Активация часто используется для листов для примера. Активный лист будет отображаться на экране... поэтому может быть только один активный лист

Выберите, хотя он может использоваться для нескольких ячеек для примера. Диапазон (A1: B3).Выбор выберет несколько ячеек, которые не могут быть активированы