2017-02-20 4 views
0

여기에서 유의해야 할 2 가지 사항이 있습니다. 첫 번째 : For 루프를 사용하여 각 행을 단계별로 설명합니다. 두 번째 : 각 행의 데이터가있는 마지막 열이 무엇인지 알지 못하므로 Range.End 함수를 사용하여 찾으려고합니다. X 행에 데이터가있는 마지막 열을 선택하려면 작동하는 코드는 다음과 같습니다 당신은 위에서 볼 수 있듯이Excel VBA - 범위 함수 내에서 범위 함수 사용

Cells(x, Range("C" & x).End(xlToRight).Column).Select 

, 나는 열 C, 행 X에서 시작하여 데이터를 마지막 셀에서 찾고 있어요 그 행. 열 A, B, C, D 및 E가 확실히 데이터를 갖기 때문에 어떤 열을 시작하든 상관 없다고 생각합니다.

이제 Cell (x, 3) (또는 C 열 X 행)에서 x 행의 데이터가있는 위 마지막 셀까지 범위를 선택하려고합니다. 다음 코드는 작동하지 않습니다.

Range("Cells(x,3):Cells(x, Range("C" & x).End(xlToRight).Column)").Select 

이렇게 범위 기능을 사용할 수 있는지 알 수 없습니다. "expect : List separator or)"라는 오류가 발생하여 C이 나타납니다. Range("C" & x)주의 깊게 보았지만 빠진 것이 없습니다.

매우 도움을 주셔서 감사합니다. 이 같은

답변

0

사용을 :

Range(Cells(x,3), Cells(x, Range("C" & x).End(xlToRight).Column)).Select 
+1

오, 내 모자를. 나 그냥 나가서 나 자신을 죽이자! 야, 30 분 그리고 나는 왜 이런 이유야! 당혹 스럽다는 말은 아닙니다! 어쨌든, 당신의 도움에 감사드립니다. 나는 10 분 안에 대답을 수락 할 것이다! 감사! – KoderM16

1

당신의 범위는 지속적인 경우에만 작동합니다 End(xlToRight)를 사용하는 방법.

범위 중간에 빈 셀이있는 경우 (열 M 및 N이 비어 있다고 가정 해 보겠습니다) 열 "O : X"의 데이터가있는 셀을 가져 오지 못하게됩니다. Select X 행에 데이터가있는 마지막 열으로

는 사용

Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)).Select 

그러나 Select 할 필요는 경우는 거의 없다 :

Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column).Select 

전체 Range 사용 Select에 "반드시"다음과 같이 먼저 Range을 정의하는 것이 좋습니다.

Dim Rng As Range 

Set Rng = Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)) 

그리고 나중에, 당신은 Select에 필요한 경우 사용 :

Rng.Select 
+0

안녕하세요. 데이터가 마지막까지 열별로 붙여 넣기되므로 계속됩니다. 그런 다음 복사하여 단어로 이동하려고 선택하려고합니다. 모두 잘 작동합니다. 당신의 도움을 주셔서 감사합니다! – KoderM16

+0

@ KoderM16 그래, 아직도'끝 (xlToRight)'과'끝 (xlDown)'을 사용할 때의 위험성을 알아야한다. –

+0

도움에 감사하고 도움을 주겠다. :) – KoderM16