2017-04-04 2 views
2

데이터에 10 개 이상의 열이 있고 그 중 3 개의 열을 선택하고 의 세 열을 더 형식을 지정하고 싶습니다. 행이 고정되어 있지 않으므로 한 번에 3 개의 열을 모두 선택할 수 없습니다. 여기 내가변수가 같지만 행 수가 같고 열이 인접하지 않습니다.

Dim lastrow As Long 
lastrow = Range("A" & Rows.Count).End(xlUp).Row 
Range("G2:H" & lastrow, "J2:J" & lastrow).Select 

을 할 노력하고있어하지만이뿐만 아니라 내가 열을 선택하는 것입니다 것입니다. 나는이 또한

Range("G2:H & lastrow, J2:J" &lastrow).select 

을 시도하지만 예상대로이 나에게 오류를했다.

데이터가 제대로 포맷됩니다하지만 Screenshot 1

을 adjacnet되지 않는 세 열에 대해이 작업을 수행 할 수 그러나

Range("J2:J" & lastrow).Select 
With Selection 
    .NumberFormat = "0" 
    .Value = .Value 
End With 

를 사용하여 나는

Intersect(Range("G:H, J:J"), Rows("2:" & lastrow)).Select 
With Selection 
    .NumberFormat = "0" 
    .Value = .Value 
End With 

열을 사용하는 경우 G와 H는 제대로 포맷되지만 Columns J는 그렇지 않습니다. #NA 항목을 제공합니다. 다음과 같이 Screenshot 2

답변

3

당신이, 당신이 Areas() 특성에 의해 얻을 수있는 각각의 연속적인 범위를 통해 루프가 있습니다

Dim lastrow As Long 
lastrow = Range("A" & Rows.Count).End(xlUp).Row 
Dim area As Range 

With Intersect(Range("G:H, J:J"), Rows("2:" & lastrow)) 
    .NumberFormat = "0" 
    For Each area In .Areas 
     area.Value = area.Value 
    Next 
End With 
+0

감사합니다! 완벽하게 :) – Digvijay

+1

작동 ... 당신은 할 수 있습니다 응답을 허용 된 것으로 표시하려면 :-) – user3598756

+0

예 이미했습니다. – Digvijay