programing

VBA를 사용하여 Range를 사용하여 전체 Excel 시트를 선택하려면 어떻게 해야 합니까?

newnotes 2023. 4. 20. 22:43
반응형

VBA를 사용하여 Range를 사용하여 전체 Excel 시트를 선택하려면 어떻게 해야 합니까?

저는 이 질문에 대한 유사한 해결책을 c# Excel 워크시트의 모든 셀을 선택하는 방법에서 찾았습니다.c#의 범위 객체?

VBA에서 이를 수행하는 프로세스는 무엇입니까?

일반적으로 "ctrl+shift over arrow, down arrow"를 사용하여 전체 셀 범위를 선택합니다.매크로에서 실행하면 A1이 코드화 됩니다.예를 들어 Q398247930입니다.난 그냥 그게 필요해

.SetRange Range("A1:whenever I run out of rows and columns")

매크로 없이도 쉽게 할 수 있지만, 저는 모든 과정을 매크로로 만들려고 합니다. 이것은 단지 일부분에 불과합니다.

Sub sort()
    'sort Macro
    Range("B2").Select
    ActiveWorkbook.Worksheets("Master").sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Master").sort.SortFields.Add Key:=Range("B2"), _
      SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Master").sort
        .SetRange Range("A1:whenever I run out of rows and columns")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

삭제:
밖에도 그 범위는 「 & & & & & & & &른른른 columns columns & & & & & & there 、 「 C3 : & columns행과 열의 끝"입니다.VBA에서 문서의 마지막 셀 위치를 확인할 수 있는 방법이 있습니까?

시트의 모든 셀이 아니라 A1의 현재 영역과 주변 셀을 찾고 싶다고 생각합니다.만약 그렇다면 - 단순히 사용...범위("A1")현재 지역

사용하시면 .cells.select워크시트의 모든 셀을 선택합니다.다음과 같이 하면 유효한 주소를 얻을 수 있습니다.Range(Cells.Address).

Used Range한 경우, 에 콜을 할 수 있습니다.ActiveSheet.UsedRange을 사용하다도움이 됐으면 좋겠다.

다음과 같은 오브젝트로 모든 셀을 사용할 수 있습니다.

Dim x as Range
Set x = Worksheets("Sheet name").Cells

X는 이제 전체 워크시트를 포함하는 범위 개체입니다.

여기에는 몇 가지 옵션이 있습니다.

  1. UsedRange 속성 사용
  2. 사용된 마지막 행과 열을 찾습니다.
  3. 시프트 다운과 시프트 우회전 흉내를 내다

저는 개인적으로 Used Range를 사용하고 있으며, 대부분의 경우 마지막 행과 열 방법을 찾습니다.

Used Range 속성을 사용하는 방법은 다음과 같습니다.

Sheets("Sheet_Name").UsedRange.Select

이 문은 워크시트에서 사용된 모든 범위를 선택합니다. 열과 행을 삭제할 때 이 방법이 잘 작동하지 않을 수 있습니다.

다른 방법은 워크시트에 사용된 마지막 셀을 찾는 것입니다.

Dim rngTemp As Range
Set rngTemp = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not rngTemp Is Nothing Then
    Range(Cells(1, 1), rngTemp).Select
End If

이 코드의 기능:

  1. 값이 들어 있는 마지막 셀 찾기
  2. 마지막 셀까지 셀(1,1)을 선택합니다.

되어 있는 내의 하는 또 다른 은 '셀'을 사용하는 입니다.Range("A1", Range("A1").End(xlDown).End(xlToRight)).Select

이 투고에서 볼 수 있는 매크로를 기록할 것을 권장합니다.

레코드를 필터링하는 Excel VBA 매크로

그러나 워크북의 끝이 아니라 데이터의 끝을 찾고 있는 경우, 데이터의 시작과 끝 사이에 빈 셀이 없는 경우, 다음과 같은 것을 자주 사용합니다.

R = 1
Do While Not IsEmpty(Sheets("Sheet1").Cells(R, 1))
    R = R + 1
Loop
Range("A5:A" & R).Select 'This will give you a specific selection

데이터가 끝나면 행 번호까지 R =가 남습니다.이것은 컬럼에도 사용할 수 있으며, Cells(C , R)와 같은 것을 사용할 수 있습니다.C를 열 표현으로 만든 경우 선택합니다.

Sub SelectAllCellsInSheet(SheetName As String)
    lastCol = Sheets(SheetName).Range("a1").End(xlToRight).Column
    Lastrow = Sheets(SheetName).Cells(1, 1).End(xlDown).Row
    Sheets(SheetName).Range("A1", Sheets(SheetName).Cells(Lastrow, lastCol)).Select
End Sub

ActiveSheet와 함께 사용하려면:

Call SelectAllCellsInSheet(ActiveSheet.Name)

이게 내가 사용한 거야. 완벽해야 한다는 건 알지만, 다른 사람들에게 도움이 될 것 같아.

''STYLING''

Dim sheet As Range

' Find Number of rows used
Dim Final As Variant
    Final = Range("A1").End(xlDown).Row

' Find Last Column
Dim lCol As Long
    lCol = Cells(1, Columns.Count).End(xlToLeft).Column

Set sheet = ActiveWorkbook.ActiveSheet.Range("A" & Final & "", Cells(1, lCol ))
With sheet
    .Interior.ColorIndex = 1
End With

워크시트 "를 찾았습니다.Used Range' 메서드는 이 문제를 해결하는 데 많은 경우에 우수합니다.나는 "의 정상적인 행동인 잘라내기 문제와 씨름했다.CurrentRegion" 메서드.[워크시트("Sheet1")]를 사용합니다.범위("A1")워크시트가 행에 공백이 있는 하나의 열로 구성되어 있으면(공백이 필요함) CurrentRegion ]에서 원하는 결과가 나오지 않습니다.이 경우 ".CurrentRegion"은 첫 번째 레코드에서 잘립니다.작업을 실장했지만, 최근에는 보다 좋은 것을 발견했습니다.아래의 코드를 참조해 주세요.전체 세트를 다른 시트로 복사하거나 실제 주소(또는 행과 열만)를 식별할 수 있습니다.

Sub mytest_GetAllUsedCells_in_Worksheet()
    Dim myRange

    Set myRange = Worksheets("Sheet1").UsedRange
    'Alternative code:  set myRange = activesheet.UsedRange

   'use msgbox or debug.print to show the address range and counts
   MsgBox myRange.Address      
   MsgBox myRange.Columns.Count
   MsgBox myRange.Rows.Count

  'Copy the Range of data to another sheet
  'Note: contains all the cells with that are non-empty
   myRange.Copy (Worksheets("Sheet2").Range("A1"))
   'Note:  transfers all cells starting at "A1" location.  
   '       You can transfer to another area of the 2nd sheet
   '       by using an alternate starting location like "C5".

End Sub

이 방법이 효과적일 수 있습니다.

Sh.Range("A1", Sh.Range()A" & Rows.카운트.종료(xlUp)

첫 번째 질문에 대해서, 저도 같은 것을 조사하고 있습니다.매크로를 기록하면 셀 A76을 선택하는 것부터 시작합니다.

Sub find_last_row()
    Range("A76").Select
    Range(Selection, Selection.End(xlDown)).Select
End Sub

언급URL : https://stackoverflow.com/questions/17955030/how-do-you-select-the-entire-excel-sheet-with-range-using-vba

반응형