VBA - 숫자를 사용하여 열을 선택하시겠습니까?
저는 이것에 대한 대안을 찾고 있습니다.code
하지만 숫자를 사용합니다.저는 5개의 열을 선택하고, 시작 열은 변수이고, 여기서 5개의 열을 선택합니다.
Columns("A:E").Select
제가 어떻게 이용합니까integers
대신 열을 참조하시겠습니까?아래와 같은 것?
For n = 1 to 5
Columns("n : n + 4") .select
do sth
next n
크기 조정은 다음과 같이 사용할 수 있습니다.
For n = 1 To 5
Columns(n).Resize(, 5).Select
'~~> rest of your code
Next
Range Manipulation(범위 조작)에서는 항상 마음 한구석에 Resize(크기 조정) 및 Offset(오프셋) 속성을 유지해야 합니다.
Columns("A:E").Select
직접 대체 가능:
Columns(1).Resize(, 5).EntireColumn.Select
여기서 1은 변수로 대체할 수 있습니다.
n = 5
Columns(n).Resize(, n+4).EntireColumn.Select
열 블럭을 n에서 n + 4로 반복하는 것보다 열 블럭을 처리하는 것이 더 효율적이라고 생각합니다.
또한 select를 사용하면 코드 속도가 느려집니다.따라서 열을 선택한 다음 선택 항목에 대해 작업을 수행하는 대신 작업을 직접 수행해 보십시오.아래는 A-E 열의 색상을 노란색으로 변경하는 예입니다.
Columns(1).Resize(, 5).EntireColumn.Interior.Color = 65535
사용할 수 있습니다.range
와 함께cells
원하는 효과를 얻기 위해(그러나 그럴 필요가 없다면 선택을 사용하지 않는 것이 좋을 것입니다).
For n = 1 to 5
range(cells(1,n).entirecolumn,cells(1,n+4).entirecolumn).Select
do sth
next n
다음을 사용해 보십시오.n
는 변수이고 x는 오프셋입니다(이 경우 4).
LEFT(ADDRESS(1,n+x,4),1)
그러면 해당 열의 문자가 반환됩니다(따라서 n=1 및 x=4의 경우 A+4 = E).그러면 다음을 사용할 수 있습니다.INDIRECT()
이를 다음과 같이 참조합니다.
COLUMNS(INDIRECT(LEFT(ADDRESS(1,n,4),1)&":"&LEFT(ADDRESS(1,n+x,4),1)))
n=1이면 x=4가 됩니다.
COLUMNS(INDIRECT("A"&":"&"E"))
그래서:
COLUMNS(A:E)
아래 예제 코드에서 나는 다른 상황에서 명령이 어떻게 사용될 수 있는지 보여주기 위해 변수를 사용합니다.
FirstCol = 1
LastCol = FirstCol + 5
Range(Columns(FirstCol), Columns(LastCol)).Select
루프 등이 필요 없습니다.이것을 시도해 보세요.
dim startColumnas integer
dim endColumn as integer
startColumn = 7
endColumn = 24
Range(Cells(, startColumn), Cells(, endColumn)).ColumnWidth = 3.8 ' <~~ whatever width you want to set..*
주소를 "B2" 대신 "R1C2"로 지정할 수 있습니다.File -> Options -> Formals -> Workingg with Formula에는 토글 R1C1 참조 스타일이 있습니다.아래 그림과 같이 설정할 수 있습니다.
저는 비슷한 것을 찾고 있었습니다.제 문제는 5행을 기준으로 마지막 열을 찾은 다음 마지막 열을 포함하기 전에 3개의 열을 선택하는 것이었습니다.
Dim lColumn As Long
lColumn = ActiveSheet.Cells(5,Columns.Count).End(xlToLeft).Column
MsgBox ("The last used column is: " & lColumn)
Range(Columns(lColumn - 3), Columns(lColumn)).Select
메시지 상자는 제어 검사에 가깝기 때문에 선택 사항입니다.마지막 열 뒤에 있는 열을 선택하려면 범위 선택을 반대로 하면 됩니다.
Dim lColumn As Long
lColumn = ActiveSheet.Cells(5,Columns.Count).End(xlToLeft).Column
MsgBox ("The last used column is: " & lColumn)
Range(Columns(lColumn), Columns(lColumn + 3)).Select
이렇게 하면 열 "Z" 뒤에서도 데이터를 선택하고 많은 열을 선택할 수 있습니다.
Sub SelectColumNums()
Dim xCol1 As Integer, xNumOfCols as integer
xCol1 = 26
xNumOfCols = 17
Range(Columns(xCol1), Columns(xCol1 + xNumOfCols)).Select
End Sub
언급URL : https://stackoverflow.com/questions/26111825/vba-select-columns-using-numbers
'programing' 카테고리의 다른 글
파이어베이스 알림 수신 시 앱 열기(FCM) (0) | 2023.06.14 |
---|---|
0 값을 모두 NA로 바꿉니다. (0) | 2023.06.14 |
MariaDB는 코드를 수동으로 실행해도 작동하는 구문 오류를 발생시키는 이유는 무엇입니까? (0) | 2023.06.14 |
각도 - @입력 및 @출력 대주입식 서비스 (0) | 2023.06.14 |
이전 인쇄물을 stdout으로 덮어쓰는 방법은 무엇입니까? (0) | 2023.06.14 |