programing

Excel 선택과 활성화

lastcode 2023. 4. 22. 09:32
반응형

Excel 선택과 활성화

VBA 코드의 차이점은 무엇입니까?wb.Sheets(1).Cells.Select그리고.wb.Sheets(1).Activate?

select의 차이점은 한 번에 여러 개체를 선택할 수 있다는 것입니다.선택한 개체는 메서드를 사용할 수 있는 선택 개체에도 배치됩니다.여러 개체를 선택하지 않는 한 셀을 선택하면 개체가 활성화됩니다.

활성화는 단순히 개체를 활성 개체로 만듭니다.이것을 생각하는 가장 좋은 방법은 "많은 셀을 선택할 수 있지만, 항상 하나의 셀만 활성 셀이 될 수 있다"는 것입니다.

주의: 둘 다 한 가지 공통점을 가지고 있습니다.그것은 거의 필요하지 않으며, 일반적으로는 코드 속도를 늦추는 것 외에는 아무것도 하지 않습니다.개체를 선택하거나 활성화하지 않고 개체에서 직접 작업할 수 있습니다. 필요한 경우가 아니면 개체를 사용하지 않는 것이 좋습니다.

다음은 MSDN의 설명입니다.

첫 번째 예wb.Sheets(1).Cells.Select여러 셀을 선택할 수 있습니다.

두 번째wb.Sheets(1).Activate시트를 액티브하게 합니다.

Excel VBA를 지원하는 리소스는 많이 있습니다.

http://www.excel-vba.com/index.htm#Tutorial%20on%20Excel%20Macros

http://www.excel-vba-easy.com/

http://www.functionx.com/vbaexcel/

첫 번째는 워크북 wb의 첫 번째 시트에 있는 모든 셀을 선택합니다.시트가 활성화되지 않으면 실패합니다.

두 번째는 워크북 wb의 첫 번째 시트를 활성화합니다.시트의 선택 또는 액티브 셀은 변경되지 않으며, 경우에 따라서는 선택된 범위 또는 액티브 셀이 없을 수 있습니다(예를 들어 현재 선택된 시트에 개체가 있는 경우).

Select- 셀 선택

Activate- 시트를 "활성화"합니다(시트에 초점을 맞추라는 것과 비슷합니다).

경우에 따라서는 특정할 필요가 있습니다.ACTIVATE시트로 만들기 위해SELECT

검색하다가 이 질문을 발견했는데, 저도 같은 질문이 있었어요.여기 제가 깨달은 것이 있습니다.

 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

워크시트.activate(또는 선택)를 삽입하지 않으면 코드가 다음과 같이 됩니다.


런타임 오류: '1004' 응용 프로그램 정의 오류 또는 개체 정의 오류입니다.


활성화는 예를 들어 시트에 자주 사용됩니다.화면에 활성 시트가 표시됩니다...따라서 활성 시트는 하나만 있을 수 있습니다.

예를 들어 여러 셀에 대해 is를 선택할 수 있습니다.범위(A1:B3)선택하면 활성화로는 불가능한 셀이 여러 개 선택됩니다.

언급URL : https://stackoverflow.com/questions/7180008/excel-select-vs-activate

반응형