2017-03-07 2 views
0

나는 예를 들어, 엑셀 파일에 데이터 세트를 가지고 :프로그래밍 방식으로 데이터를 Excel의 눈금에 배치하려면 어떻게해야합니까?

RIH2329 
SCC272 
CRT041 
WS13-14 
WS13-16 
RIH2602 
VT001 
CRT035 
RIH2874 
RIH2876 
CRT067 
RIH2744 
RIH2750 
RIH2368 
RIH2374 
RIH2378 
RIH2376 
RIH2373...etc 

내가이 9 × 9 격자에이 데이터를 배치합니다. 이와 같이 :

RIH2329 SCC272 CRT041 WS13-14 WS13-16 RIH2602 VT001 CRT035 RIH2874 
RIH2876 CRT067 RIH2744 RIH2750 RIH2368 RIH2374 RIH2378 RIH2376 RIH2373...etc 

저는 많은 데이터를 가지고 있으므로 손으로 할 수 없습니다. 나는 내가 원하는 곳에서 데이터를 얻기 위해 =offset을 사용해 보았지만 각 줄의 코드를 변경해야하기 때문에이 방법을 사용할 수 없다. 모든 라인을 편집하지 않고도 원하는 것을 성취 할 수있는 쉬운 방법이 있습니까?

답변

0

A1에서 RIH2329으로, B1에 넣고 :

=OFFSET($A$1, MOD(COLUMN(A:A)-1, 9)+(ROW(1:1)-1)*9, 0) 

채우기를 J1 다음 B1 채우기 오른쪽 : B9까지 J1을 : J9합니다.

enter image description here

1

이 VBA 매크로 코드와 그것을 달성 할 수있다.

Sub makeDataGrid() 

Range("A1").Activate 'asumes data starts at this cel 
'Put all data into memory down to the bottom assumes there are no blank cells in between 
data = Range(Selection, Selection.End(xlDown)).Value 
'Delete column containing all data 
Range(Selection, Selection.End(xlDown)).Delete 

colOffset = 0 
rowOffset = 0 
For i = 1 To UBound(data) 
    ActiveCell.Offset(rowOffset, colOffset).Value = data(i, 1) 
    colOffset = colOffset + 1 
    If colOffset = 9 Then 
     colOffset = 0 
     rowOffset = rowOffset + 1 
    End If 
Next i 

End Sub 

매크로는 배열에 넣은 다음 모눈을 만든 후 모든 데이터가 들어있는 열을 제거합니다.

관련 문제