programing

VBA - 숫자를 사용하여 열을 선택하시겠습니까?

javamemo 2023. 6. 14. 21:37
반응형

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 참조 스타일이 있습니다.아래 그림과 같이 설정할 수 있습니다.

enter image description here

저는 비슷한 것을 찾고 있었습니다.제 문제는 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

반응형