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는 이제 전체 워크시트를 포함하는 범위 개체입니다.
여기에는 몇 가지 옵션이 있습니다.
- UsedRange 속성 사용
- 사용된 마지막 행과 열을 찾습니다.
- 시프트 다운과 시프트 우회전 흉내를 내다
저는 개인적으로 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,1)을 선택합니다.
되어 있는 내의 하는 또 다른 은 '셀'을 사용하는 입니다.Range("A1", Range("A1").End(xlDown).End(xlToRight)).Select
이 투고에서 볼 수 있는 매크로를 기록할 것을 권장합니다.
그러나 워크북의 끝이 아니라 데이터의 끝을 찾고 있는 경우, 데이터의 시작과 끝 사이에 빈 셀이 없는 경우, 다음과 같은 것을 자주 사용합니다.
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
'programing' 카테고리의 다른 글
| 목록 상자에서 텍스트 상자 항목을 선택해도 목록 상자의 선택한 항목은 변경되지 않습니다. (0) | 2023.04.20 |
|---|---|
| 왜 차르가 없지?문자열처럼 비어 있습니다.비어있나요? (0) | 2023.04.20 |
| SQL Server PRINT SELECT (선택한 쿼리 결과를 인쇄하시겠습니까?) (0) | 2023.04.20 |
| Azure App Services에서 스케일아웃은 어떻게 작동합니까? (0) | 2023.04.20 |
| 특정 확장자가 ls 및 grep인 파일 나열 (0) | 2023.04.20 |